INSERT INTO A SELECT SNAME,C.AVGBBB FROM (SELECT s#,AVG(grade) AVGBBB FROM 成绩表 GROUP BY s#) C,S
WHERE C.AVGBBB = (SELECT MAX(AVGBBB) FROM (SELECT s#,AVG(grade) AVGBBB FROM 成绩表 GROUP BY s#)) AND S.S#=C.S#;
没测试,你试试看

解决方案 »

  1.   

    select  s#,sname,max(sum(grade)/count(s#)) from s,成績表 b where s.s#=b.s# group by s#,sname
      

  2.   

    bzszp(SongZip) 写的对!
     GuoYangHai(Start) 写的不对!
      

  3.   

    bzszp(SongZip) 写的对啊!贴主请说明怎么不行?
    你的oracle版本是8i以下的?
      

  4.   

    INSERT INTO A
    (SELECT S.SNAME,AVG(SC.GRADE)
    FROM   S,C,SC
    WHERE  S.S# = SC.S#
    GROUP BY S.SNAME
    HAVING AVG(SC.GRADE) >= ALL( SELECT MAX(AVG(SC.GRADE))
         FROM  SC
         GROUP BY SC.S#))
      

  5.   

    另外一种方法
    INSERT INTO A
    SELECT  S.SNAME,AVG(SC.GRADE)
    FROM SC,S
    WHERE SC.S#=S.S#
    GROUP BY S.SNAME
    HAVING AVG(SC.GRADE)=(SELECT MAX(AVG(GRADE))
          FROM SC
    GROUP BY SC.S#)