题目:在牛客刷题有一个通过题目个数的(passing_number)表,id是主键
第1行表示id为1的用户通过了4个题目;
请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:
id为5的用户通过了5个排名第1,
id为1和id为6的都通过了4个,并列第2
题解:
row_number()对应唯一排序:1、2、3、4
dense_rank()对应相同次序可重复,但不跳过下一个次序值:1、2、2、3
rank()对应相同次序可重复,并且跳过下一个次序值:1、2、2、4
select * ,dense_rank() over (order by number desc) as t_rank
from passing_number
order by t_rank,id