sql语句查询各门课程平均分的最大值

T_SCORE数据表如下:

sql语句查询各门课程平均分的最大值_第1张图片本题思路是先求各门课程平均分,然后取最大值。

解法一:


  • select courseno,stuno,avg(score) '平均分最高值'--这里是求平均,后面的条件是过滤最大值的
  • from T_SCORE 
  • group by courseno,stuno
  • having avg(score) >= all (select avg(score) sco--这里是过滤最大值
  • from T_SCORE 
  • group by courseno)

解法二:


select top 1 with ties courseno,avg(score) '平均分最高值'--这里的with ties 就是为了解决相同排名的,找出排列相同的值
from T_SCORE 
group by courseno
order by 平均分最高值 desc 
两种方法的结果都是:


还可以用ROW_NUMBER()函数,等我学会再整理出来。






你可能感兴趣的:(SQL,Server)