mysql行转列汇总数据

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

score表:

mysql行转列汇总数据_第1张图片

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

mysql行转列汇总数据_第2张图片 

这道题要用到汇总,所以我们要用 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

 

你可能感兴趣的:(MySQL)