mysql行转列汇总数据

最近找工作面试的时候做了这一道题:

score表:

要求根据score表汇总为下面这种: 

 

这道题要用到汇总,所以我们要用 sum函数,一个人对应一条数据,所以我们要对name进行group by分组:

SELECT   
s.name,
SUM(CASE  WHEN s.category='语文' THEN s.score ELSE 0 END) AS '语文',  
SUM(CASE  WHEN s.category='数学' THEN s.score ELSE 0 END) AS '数学',  
SUM(CASE  WHEN s.category='英语' THEN s.score ELSE 0 END) AS '英语',
SUM(s.score) AS '总分'
FROM score s 
GROUP BY s.name

 

©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页