Hive分析窗口(开窗函数)
Posted 河南骏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive分析窗口(开窗函数)相关的知识,希望对你有一定的参考价值。
Hive中提供了很多分析函数,用于完成负责的统计分析。先看看基础的sum,avg,min,max,用于实现分组内所有和连续累计的统计。
sum(columns) over (partition by col1 order by col2 rows between n/unbounded preceding and m following/current row )
如果不指定rows between,默认为从起点到当前行;
如果不指定order by,则将分组内所有值累加;
关键是理解rows between含义,也叫做window子句:
preceding:往前
following:往后
current rows:当前行
unbounded:起点
unbounded preceding:表示从前面的起点
unbounded following:表示到后面的终点
================================================================================================
ntile(n),用于将分组数据按照顺序切分成N片,返回当前切片值。ntile不支持rows between,如果切片不均匀,默认增加第一个切片的分布。
row_number(),从1开始,按照顺序,生成分组内记录的序列。
rank(),生成数据项在分组中的排名,排名相等会在名次中留下空位。
dense_rank(),生成数据项在分组中的排名,排名相等会在名词中不会留下空位。
cume_dist(),小于等于当前值的行数/分组内总行数。
percent_rank(),分组内当前行的rank值-1/分组内总行数-1
以上是关于Hive分析窗口(开窗函数)的主要内容,如果未能解决你的问题,请参考以下文章