SQL63 刷题通过的题目排名

描述

在牛客刷题有一个通过题目个数的(passing_number)表,id是主键,简化如下:

第1行表示id为1的用户通过了4个题目;

.....

第6行表示id为6的用户通过了4个题目;

请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:

d为5的用户通过了5个排名第1,

id为1和id为6的都通过了4个,并列第2

drop table if exists passing_number;
CREATE TABLE `passing_number` (
`id` int(4) NOT NULL,
`number` int(4) NOT NULL,
PRIMARY KEY (`id`));

INSERT INTO passing_number VALUES
(1,4),
(2,3),
(3,3),
(4,2),
(6,4),
(5,5);

输出

5|5|1
1|4|2
6|4|2
2|3|3
3|3|3
4|2|4

select a.id,a.number,
(select count(distinct b.number) 
 from passing_number b where b.number>=a.number )
 from passing_number a order by a.number desc, a.id asc;
posted @ 2021-11-20 10:51  杜嘟嘟  阅读(8)  评论(0编辑  收藏  举报