MySQL--行列转换

最近在刷Leet Code,一直没有刷到行列转换的题目,在Excel中,最常用的就是使用数据透视表了。

SQL中,这种方法是比较常用到的,所以搜集了一些资料方法,整理如下,加深记忆。

Table name: score

MySQL--行列转换

一 行转列

方法1 case...when...then...else...end

select id, name,
  sum(case when course='Math' then score else 0 end) Math,
  sum(case when course='English' then score else 0 end) English
from score
group by id;

方法2 if(字段1=字段值,,)

select id, name,
  sum(if(course='Math',course,0)) Math,
  sum(if(course='English'),course,0) English
from score
group by id;

这里还涉及到可能最后需要求解总和Total的值,加在一起即可。

 

二 列转行

...明天补充

上一篇:奇怪的sql


下一篇:ABAP 给数据表写修改记录