失效链接处理 |
Hive中分组取topN_row_number-rank和dense_rank的使用 PDF 下载
本站整理下载:
相关截图:
主要内容:
1. 分组-组内排序 对 deptid 分组,组内根据 salary 排序 select *, row_number() over(partition by deptid order by salary) as rank from employee 结果: 值相同,先出现的排名靠前
2. 分区-组内排序-取 topN 对 deptid 分组,组内根据 salary 降序排序,取每组内的前 1 名。 select * from (select *, row_number() over(partition by deptid order by salary desc) as salary_rank from employee) t where salary_rank <= 1 3. 不分组-只对某个字段排序 所有数据进行排名,不用分组,只用 partition by 1 即可 select *, row_number() over(partition by 1 order by salary desc) as salary_rank from employee 4. rank() over() rank() over(partition by deptid order by salary desc ) select *, rank() over(partition by deptid order by salary desc) as salary_rank from employee 值相同是,排名会并列,下一个移动 N,N 为值相同的个数。 结果
|