Hive 窗口函数、分析函数】的更多相关文章

hive窗口函数/分析函数 在sql中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数.窗口函数又叫OLAP函数/分析函数,窗口函数兼具分组和排序功能. 窗口函数最重要的关键字是 partition by 和 order by. 具体语法如下:over (partition by xxx order by xx…
0. 说明 Hive 的分析函数 窗口函数  | 排名函数 | 最大值 | 分层次 | lead && lag 统计活跃用户 | cume_dist 1. 窗口函数(开窗函数) over 1.1 说明 1 preceding //前一个 1 following //后一个 current row //当前行 unbounded preceding //无上限 unbounded following //无下限 1.2 测试 # 以行定义窗口界限 following) from user_p…
在SQL中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据,又要显示聚集后的数据,这时我们便引入了窗口函数.窗口函数又叫OLAP函数/分析函数,窗口函数兼具分组和排序功能. 本文分为两部分: 第一部分是Hive窗口函数详解,剖析各种窗口函数(几乎涵盖Hive所有的窗口函数): 第二部分是窗口函数实际应用,这部分总共有五个例子,都是工作常用.面试必问的非常经典…
前几天遇到一个这样的需求:销售总占比加起来超过75%的top分类.具体需求是这样的:商品一级分类标签下面有许多商品标签,例如运动户外一级标签,下面可能存在361°,CBA,Nike,Adidas...等这些商品标签.我们需要统计在一级标签下面占总销售比超过75%的商品标签有哪些,从而让我们了解一级品牌标签下面哪些商品比较收用户喜欢.有以下样例数据(amount_precnt为这类商品在一级标签当中销售占比). 按照我们的业务需求我们要得到男装->(优衣库,七匹狼) 箱包->(coach) 运动…
1 分析函数:用于等级.百分点.n分片等 Ntile 是Hive很强大的一个分析函数. 可以看成是:它把有序的数据集合 平均分配 到 指定的数量(num)个桶中, 将桶号分配给每一行.如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1. 语法是: ntile (num)  over ([partition_clause]  order_by_clause)  as your_bucket_num 然后可以根据桶号,选取前或后 n分之几的数据. 例子: 给了用户和每个用户对…
1.窗口函数 1.LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL) 2.LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值 第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL) 3.FIRST_VALUE(col,false) 用于统…
窗口函数(window functions)对多行进行操作,并为查询中的每一行返回一个值. OVER()子句能将窗口函数与其他分析函数(analytical functions)和报告函数(reporting functions)区分开来. 1. 常用窗口函数 下表列出了一些窗口函数以及描述信息: 窗口函数 描述LAG() LAG()窗口函数返回分区中当前行之前行(可以指定第几行)的值. 如果没有行,则返回null.LEAD() LEAD()窗口函数返回分区中当前行后面行(可以指定第几行)的值.…
hive中有些分析函数功能确实很强大,在和sum,max等聚合函数结合起来能实现不少功能. 直接上代码演示吧 原始数据 channel1 2016-11-10 1 channel1 2016-11-11 3 channel1 2016-11-12 5 channel1 2016-11-13 6 channel1 2016-11-14 2 channel1 2016-11-15 4 channel2 2016-11-10 5 channel2 2016-11-11 3 channel2 2016-…
一.创建表: create table windows_ss ( polno string, eff_date string, userno string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile; 数据准备: P066666666666,2016-04-02 09:00:02,user01 P066666666666,2016-04-02 09:00:00,user02 P066666666666,20…
参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics 环境准备: CREATE TABLE `wtab`( `a` int, `b` int, `c` int); 数据: 1.LEAD函数 LEAD (scalar_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_claus…