insert into SC
values(01,01,80),(01,02,90),(01,03,99),(02,01,70),(02,02,60),(02,03,80),(03,03,80),(04,01,50),(04,02,30),(04,03,20),(05,01,76),(05,02,87),(06,03,34),(07,02,89),(07,03,98),(03,01,80),(03,02,80),(06,01,31);
需要查找:按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩。
sql语句为
select Sid,max(case Cid when '1' thenscore else 0 end)'01',
max(case Cid when '2' then score else 0end)'02',
max(case Cid when '3' then score else 0end)'03',AVG(score)平均分 from SC
groupby Sid order by 平均分 desc ;显示结果为:
不加max()函数的sql语句:
select Sid,(case Cid when '1' then scoreelse 0 end)'01',
(case Cid when '2' then score else 0end)'02',
(case Cid when '3' then score else 0end)'03',AVG(score)平均分 from SC
group by Sid order by 平均分 desc ;
显示结果为:
想问一下 为什么要加max()函数呢?该怎样理解?谢谢