口诀:
row_number 不存在并列
dense_rank 和rank存在并列,但rank很跳。
口诀的意思是:
row_number:不考虑并列的情况,哪怕分数相同,排名都是一溜下来的自然数。
dense_rank和rank 考虑并列的情况,区别在于rank很跳,并列排名的个数会影响接下来的排名,表现为数字的中断。而dense_rank 不管有几个并列的第5名,接下来都是从6开始排。
如下图所示
本题的具体代码为:
select id ,number ,dense_rank()over(order by number desc) as t_rank from passing_number;