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

 

你可能感兴趣的:(cloudera)