mysql 在同一个表中对具有多个科目成绩的不同学生进行排名

问题描述 投票:0回答:1
我想根据学科以及该特定学科的总体成绩对学生进行排名。查询适用于所有主题,但是当我指定 where 子句时,我只获得 where 子句中指定的用户的排名,并且排名始终为 1 似乎它没有检查其他 id

SELECT Student_id, Subject, Total_Overal, RANK() OVER (PARTITION BY Subject ORDER BY Total_Overal DESC) as StudentRank FROM exams WHERE Student_id="155676" and Subject="French";
    
mysql ranking
1个回答
0
投票
因为where子句只得出一行结果,所以排名永远是1。需要在周围再添加一层SELECT:

SELECT * FROM (SELECT Student_id, Subject, Total_Overal, RANK() OVER (PARTITION BY Subject ORDER BY Total_Overal DESC) as StudentRank FROM exams) t WHERE Student_id="155676" and Subject="French";
    
© www.soinside.com 2019 - 2024. All rights reserved.