有选课表,内有字段:学生学号、课程号、成绩,怎样一条SQL语句查出平均分最高的课程号?

解决方案 »

  1.   

    SELECT TOP 1 课程号 FROM TB GROUP BY 课程号 ORDER BY AVG(成绩) DESC
      

  2.   

    SELECT TOP 1 课程号 FROM TB GROUP BY 课程号 ORDER BY AVG(成绩) DESC
      

  3.   

    select
      top 1 课程号
    from
      (select 课程号,avg(成绩) as 成绩 from tb group by 课程号)t
    order by
      t.成绩 desc
      

  4.   

    select top 1 课程号、sum(成绩) as 总成绩
    from 选课表
    group by 课程号
    oder by 总成绩 DESC
      

  5.   

    SELECT 课程号 FROM 
    (SELECT  课程号,AVG(成绩) '平均成绩' FROM TB GROUP BY 课程号) T1
    WHERE NOT EXISTS(
    SELECT 1 FROM (SELECT  课程号,AVG(成绩) '平均成绩' FROM TB GROUP BY 课程号) T2
    WHERE T2.课程号<>T1.课程号 AND T2.平均成绩>T1.平均成绩
    )
      

  6.   

    ;with f as
    (
    select 课程号,avg(成绩) as 成绩 from tb group by 课程号
    )
    select 课程号 from(select id=row_number()over(order by 成绩 desc),* from f)t where id=1 
      

  7.   

    select * from 
    (
    SELECT  课程号 ,AVG(成绩) b FROM TB GROUP BY 课程号 
    )t where b=(select max(B) from (
    SELECT  课程号 ,AVG(成绩) b FROM TB GROUP BY 课程号 
    )t1 
    )