排序函数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_rank
from passing_number;
|