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;