gpt4 book ai didi

mysql - 根据类(class)对学生进行排名

转载 作者:行者123 更新时间:2023-11-29 02:50:45 25 4
gpt4 key购买 nike

我正在尝试根据学生的类(class) (exam_place_id) 按他们的分数对我的学生进行排名。

这是我的数据库 enter image description here

例如,在 exam_place_id 11 中得分最高的学生将排名为 1exam_place_id 12 中的最高点也将排在第 1 位

综合排名就是他们的综合得分

我做了综合排名

select er.*,
(@rank := @rank + 1) as ranking
from examresults er cross join
(select @rank := 0, @point := -1) params

order by point desc;

然而当我尝试

select er.*,
(@rank := @rank + 1) as ranking
from examresults er cross join
(select @rank := 0, @point := -1) params
**group by exam_place_id**
order by point desc;

它不起作用。

注意:我还想用值更新我的 class_ranking 列,但我当前的查询确实选择了。

最佳答案

您需要跟踪考试地点并将其用于排名:

select er.*,
(@rank := if(@ep = exam_place_id, @rank + 1,
if(@ep := exam_place_id, 1, 1)
)
) as ranking
from examresults er cross join
(select @rank := 0, @ep := -1) params
order by exam_place_id,
point desc;

关于mysql - 根据类(class)对学生进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com