博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

Hive 常用的开窗函数

 (10条消息) hive的开窗函数_Climber_XL的博客-CSDN博客_hive 开窗

 

Function (arg1,..., argn) OVER ([PARTITION BY <...>] [ORDER BY <....>]
[<window_expression>])

 

-- 聚合开窗函数
count();   -- 窗口内总条数
sum();   -- 窗口内数据的和
min();   -- 窗口内最小值
max();   -- 窗口内最大值
avg();   -- 窗口内的平均值
-- 排序开窗函数
row_number();     -- 从1开始,按照顺序,生成分组内记录的序列
rank();         -- 生成数据项在分组中的排名,排名相等会在名次中留下空位
dense_rank();    -- 生成数据项在分组中的排名,排名相等会在名次中不会留下空位
ntile(n);    -- 将分区中已排序的行划分为大小尽可能相等的指定数量的排名的组,
-- 并返回给定行所在的组的排名。
percent_rank(); -- 计算给定行的百分比排名。可以用来计算超过了百分之多少的人。(当前行的rank值-1)/(分组内的总行数-1)
-- 如360小助手开机速度超过了百分之多少的人。
cume_dist(); -- 计算某个窗口或分区中某个值的累积分布。假定升序排序,则使用以下公式确定累积分布:
-- 小于等于当前值x的行数 / 窗口或partition分区内的总行数。其中,x 等于 order by 子句中指定的列的当前行中的值。
-- 其他窗口函数
FIRST_VALUE(); -- 返回分区中的第一个值。
LAST_VALUE(); -- 返回分区中的最后一个值。
LAG(col,n,default); -- 用于统计窗口内往上第n个值。
LEAD(col,n,default);-- 用于统计窗口内往下第n个值。

 

posted @ 2022-06-02 10:05  CHANG_09  阅读(2456)  评论(0编辑  收藏  举报