已知关系s(snum,sname,sge,dept)sc(snum,cnum,score)c(cnum,cname,teacher)用函数实现在 查找最高平均分的学生姓名!

解决方案 »

  1.   


    select top 1 sname,avg(score) from s join sc on s.snum=sc.snum 
    group by sname order by avg(score) desc 
      

  2.   

    create function fun_findmax()
    returns nvarchar(max)
    as 
    begin
       declare @name nvarchar(20)
       ;with c1 as
       (
           select AVG(score) as score,snum from sc group by snum
       ),
       c2 as
       (
           select MAX(score) as score,snum from c1
       )
       select @name=s.sname from s,c2 where s.snum=c2.snum
       return @name
    end