考虑一个学生表和一个成绩表。成绩表包含学生学习的所有课程的成绩。我想找到平均成绩最高的学生。
我会使用 CTE 来解决这个问题,但似乎 MySQL 不提供 CTE。我想写一个查询来找到最大平均数的学生。等级,也避免编写查询,得到平均。所有学生的成绩,不止一次。
一个不起作用的查询如下(这可能会让我更了解我想要实现的目标):
select temp.st_name
from (select st1.student_name st_name, AVG(grade) avg_grade from Student st1, Grades grd1 where st1.student_id = grd1 .student_id group by st1.student_id, st1.sudent_name) temp
where temp.avg_grade = (select MAX(temp.avg_grade) from temp)
上面的查询给出了错误:表临时不存在。
有没有其他方法可以找到最大平均数的学生。等级,避免写两次内联视图语句?
谢谢!