Sql面试题之一
如下图(passing_number)表,id是主键,简化如下:
第1行表示id为1的用户通过了4个题目;
.....
第6行表示id为6的用户通过了4个题目;
请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:
id为5的用户通过了5个排名第1,
id为1和id为6的都通过了2个,并列第2
解决方法:
select id,number, dense_rank()over(order by number desc) rank
from passing_number
order by number desc , id asc

浙公网安备 33010602011771号