排序函数row_number、rank、dense_rank的区别
发表于 2021-01-25 16:17:29
口诀:
row_number 不存在并列
dense_rank 和rank存在并列,但rank很跳。
口诀的意思是:
row_number:不考虑并列的情况,哪怕分数相同,排名都是一溜下来的自然数。
dense_rank和rank 考虑并列的情况,区别在于rank很跳,并列排名的个数会影响接下来的排名,表现为数字的中断。而dense_rank 不管有几个并列的第5名,接下来都是从6开始排。
如下图所示
本题的具体代码为:
|
1
2
3
4
|
select id ,number ,dense_rank()over(order by number desc) as t_rankfrom passing_number; |
浙公网安备 33010602011771号