Hive开窗函数结构:
xx() over(partition by xx order by xx ROWS/RANGE between xx and xx)
一、Hive开窗函数,大致有两类:排序开窗、聚合开窗
1. 排序开窗函数
row_number():组内排名后获取行号
rank():组内排名(排名可能不连续)
dense_rank():组内排名(排名连续)
percent_rank():计算给定行的百分比排名,可以用来计算超过了百分之多少的人。(当前行的rank值-1)/(分组内的总行数-1)
first_value()
last_value()
lag(col, n, default):用于统计窗口内往上取第n个值
lead(col, n, default):用于统计窗口内往下取第n个值
cume_dist(col):计算某窗口或分区中截止某值时的累积分布。假定升序排序,则累积分布=小于等于当前值x的行数/分区内的总行数。
ntile():将分区中已排序的行划分为大小尽可能相等的指定数量的排名的组,并返回给指定行所在组的排名。
2. 聚合开窗函数
sum()
count()
avg(

本文介绍了Hive的开窗函数,包括排序开窗函数如row_number、rank、dense_rank等,以及聚合开窗函数如ntile、cume_dist。详细阐述了窗口范围控制的rows/range between的使用,探讨了rows和range的区别,并提供了相关业务场景的应用示例。
最低0.47元/天 解锁文章
606

被折叠的 条评论
为什么被折叠?



