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分析窗口(开窗函数)的主要内容,如果未能解决你的问题,请参考以下文章

hive关于窗口函数的使用

Hive分析窗口(开窗函数)

Hive分析窗口(开窗函数)

Hive之窗口函数

Hive开窗函数

大数据之Hive:Hive 开窗函数