准备工作:

Spark操作开窗函数_聚合函数

Spark操作开窗函数_sql_02

 

聚合开窗函数

OVER 关键字表示把聚合函数当成聚合开窗函数而不是聚合函数。
SQL标准允许将所有聚合函数用做聚合开窗函数。

Spark操作开窗函数_升序_03

OVER(PARTITION BY class)表示对结果集按照 class 进行分区,并且计算当前行
所属的组的聚合计算结果。

Spark操作开窗函数_升序_04

 

排序开窗函数

row_number() over(order by score) as rownum 表示按score 升序的方式来排序,并得出排序结果的序号

Spark操作开窗函数_聚合函数_05

 

Spark操作开窗函数_sql_06

 

 RANK跳跃排序

Spark操作开窗函数_sql_07

Spark操作开窗函数_聚合函数_08

 

DENSE_RANK连续排序:

dense_rank() over(order by score) as dense_rank 表示按score 升序的方式来排序,并得出排序结果的排名号。

Spark操作开窗函数_sql_09

NTILE分组排名

ntile(5) over(order by score)as ntile表示按 score 升序的方式来排序,然后 5 等分成5 个组,并显示所在组的序号。

Spark操作开窗函数_sql_10