第13题,显示所有学生的所有成绩,应该要用到行转列吧。
初学者,写下我的答案,如有问题,希望大佬能指正一下。
select stu.SId, stu.Sname,
Max(case sc.CId when '01' then sc.score else 0 end) as Chinese,
Max(case sc.CId when '02' then sc.score else 0 end) as Math,
Max(case sc.CId when '03' then sc.score else 0 end) as English,
AVG(sc.score) as avgscore
from student stu
left join sc on stu.SId=sc.SId
group by stu.SId, stu.Sname
order by avgscore DESC;
