最近遇到一个需求:求出各个部分工资排名前十的同事。由于数据量太大,在、不能只能用mysql(速度太慢了),还就用hive进行查询。

找到了一个分组排序函数 row_number()

 

语法: row_number() over(partition by 分组列 order by 排序列 desc)

 

注意:在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by、  order by 的执行。