给出3个表,即学生(id、名称)、课程(id、name)、年级(id、course_id、student_id、年级),根据平均年级按平均成绩排序,如果多名学生有相同的平均成绩,按姓名按顺序按顺序进行排序。您的查询应该输出具有以下列(name,average_grade)的表。
我写了这个查询
SELECT
s.name AS name, AVG(g.grade) AS average_grade
FROM
grades g
JOIN
students s ON g.student_id = s.id
GROUP BY g.student_id , s.name
ORDER BY AVG(g.grade) DESC , s.name
LIMIT 100;但是它已经死了,因为S太慢了,所以没有改进它?
发布于 2021-03-24 19:32:13
能做这样的事
选择前100 S.名字为学生姓名,AVG(G.等级)为平均等级
FROM [grades] [g] join [students] [s] on [g].[student\_id] = [s].[id] GROUP BY [g].[student\_id],[s].[name] ORDER BY AVG([g].[grade]) desc,[s].[name] https://dba.stackexchange.com/questions/287625
复制相似问题