我让学生在SQL数据库中测试记录,其中个别学生可以有多个分数。我想找到每个学生的最高分(最高分),他们按年级(按顺序)总结这些数据。我试过嵌套"命令"但它不起作用。当我做最大值(平均值(得分))时,我得到一个错误。
studentID gradeLevel score
student_1 10 495
student_1 10 365
student_2 9 652
student_2 9 589
student_3 10 612
student_3 10 485
student_4 9 358
student_4 9 600
Grade_9 626 (652+600)/2
Grade_10 554 (495+612)/2
非常感谢任何帮助和/或指向正确的方向。
答案 0 :(得分:1)
这是使用子查询的一个选项:
select gradelevel, avg(maxscore)
from (
select studentid, gradelevel, max(score) maxscore
from yourtable
group by studentid, gradelevel
) t
group by gradelevel
答案 1 :(得分:0)
select distinct level,max(max_score),avg(max_score)
from
(
select student_id as 'id',grad_level as 'level',max(score) as 'mx_score'
from scor_table_name
group by sutedent_id,grad_level
) RS
group by level;