mysql查询每个学⽣的各科成绩,以及总分和平均分
今天看⼀个mysql教程,看到⼀个例⼦,感觉⾥⾯的解决⽅案不是很合理。
问题如下:
有学⽣表:
成绩表:
想要查询出的效果:
阿胶的制作方法黑洞是如何形成的
其实就是原来是⼀个分数⼀条记录,现在变成⼀个学⽣⼀条记录。
那个教程⾥的sql如下:
lect a.id as学号, a.name as姓名,
(ca when b.kemu='语⽂'then score el0end)as语⽂,
(ca when b.kemu='数学'then score el0end)as数学,
(ca when b.kemu='英语'then score el0end)as英语
from student a, grade b
where a.id = b.id
工程信息管理实现的效果:
有关牛的成语
雨怎么画
很明显,每个学⽣的每个成绩都是单独⼀条记录,那和原来没有什么区别嘛。改进后的sql如下:
办理个人营业执照SELECT s.id, s.name,
max(ca when g.kemu='语⽂'then score el0end)as语⽂,
max(ca when g.kemu='数学'then score el0end)as数学,
max(ca when g.kemu='英语'then score el0end)as英语,
sum(score)as总分,
avg(score)as平均分
from student s LEFT JOIN grade g ON s.id = g.s_id GROUP BY s.id
就是使⽤了聚合函数,效果如下:祷告的意思
中级职称报考条件
是不是⽐原来的效果好很多了呢