给一个数据库表,ID、score两个字段分别代表学生ID和成绩,写SQL语句求ID=?的学生排第几名?

it2022-05-08  9

CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `score` double NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

有如下信息

求输出学生id,成绩,以及排名

SELECT id,score,(SELECT COUNT(*)+1 FROM student WHERE a.score<score) AS sort FROM student a ORDER BY sort

直接输出学生id=?的排名

SELECT (SELECT COUNT(*)+1 FROM student WHERE a.score<score) AS sort FROM student a where id=? ORDER BY sort


最新回复(0)