我正在尝试通过学生的 id 在表格中选择学生的等级。下面的代码将有助于解释我的问题。表的名称是 Student,它有 id 和标记作为它的列。
SELECT id, marks,
@curRank := IF(@prevVal=marks,@curRank,@studentNumber) AS rank,
@studentNumber := @studentNumber + 1 as studentNumber,
@prevVal:=marks
FROM Student,(SELECT @curRank :=0, @prevVal:=null, @studentNumber:=1 ) r
ORDER BY marks DESC where id='001';
上面的代码能够选择所有学生的 id 列表和他们的排名,where id='001'
但我想通过它的 id 选择每个学生的排名。我已经尝试了上面的代码来解决我的问题,但无济于事,请有人帮忙。这就是我执行上面的代码时我的表格的样子where id='001'
id marks rank
002 92 1
003 92 1
001 80 3
我想选择 id = 001 的标记和排名,如下面的输出
id marks rank
001 80 3