【发布时间】:2013-01-31 12:21:50
【问题描述】:
每个学生都有一些分数(每个分数都有student_id 列)。
我想计算学生的平均成绩,将他的平均成绩与其他学生进行比较,并找出他在班级中的位置。
是否可以根据平均 1 次查询找到他的位置? (可能包含子查询或连接)
我可以通过这个查询按所有学生的平均数对所有学生进行排序:
SELECT s.*
FROM
scores s LEFT JOIN lessons lesson
ON lesson.id = s.lesson_id
WHERE lesson.display = 1
GROUP BY s.student_id
ORDER BY AVG(s.score) DESC
但它需要使用 PHP array_search 函数进行处理。 (我认为在这种情况下使用 MySQL 函数更好)
【问题讨论】: