SQL使用嵌套的Order By平均最大值

时间:2016-07-19 18:55:10

标签: mysql

我让学生在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

非常感谢任何帮助和/或指向正确的方向。

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;