问题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);请你根据上表,输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列,数据如下:
id为5的用户通过了5个排名第1,
id为1和id为6的都通过了4个,并列第2
sqlSELECT
a.*,
CONVERT ( r.t_rank, UNSIGNED ) t_rank
FROM
( SELECT pn.* FROM passing_number pn ORDER BY pn.number DESC, id ) a
LEFT JOIN (
SELECT
p.number,
@r := @r + 1