Hive开窗函数结构:
xx() over(partition by xx order by xx rows between xx and xx)
Hive开窗函数,大致有以下两类:
1. 排序开窗函数
row_number():组内排名后获取行号
rank():组内排名(连续)
dense_rank():组内排名(跳跃)
first_value()
last_value()
lag(col, n, default):用于统计窗口内往上取第n个值
lead(col, n, default):用于统计窗口内往下取第n个值
cume_dist(col):计算某窗口或分区中截止某值时的累积分布。假定升序排序,则累积分布=小于等于当前值x的行数/分区内的总行数。
ntile():将分区中已排序的行划分为大小尽可能相等的指定数量的排名的组,并返回给指定行所在组的排名。
2. 聚合开窗函数
sum()
count()
avg()
max()
min()
参考链接:
https://blog.csdn.net/weixin_44632815/article/details/114465359
Hive开窗函数
控制窗口范围rows between的应用
在使用hsql完成一些业务需求的时候,我们经常会用到窗口函数,某些场景
下会涉及到需要控制窗口函数的范围来满足业务需求,这个时候就需要用到rows
between了,使用rows between可以根据自己的需求任意的控制窗口函数的范围。
rows between关键字含义
PRECEDING:往前
FOLLOWING:往后
CURRENT ROW:当前行
UNBOUNDED:无边界,UNBOUNDED PRECEDING 表示从最前面的起点开始, UNBOUNDED FOLLOWING:表示到最后面的终点
参考链接:
hive中控制窗口范围rows between的使用
SQL总结-开窗函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)