最近在刷Leet Code,一直没有刷到行列转换的题目,在Excel中,最常用的就是使用数据透视表了。
SQL中,这种方法是比较常用到的,所以搜集了一些资料方法,整理如下,加深记忆。
Table name: score
一 行转列
方法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的值,加在一起即可。
二 列转行
...明天补充