MySQL--行列转换

最近在刷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的值,加在一起即可。

 

二 列转行

...明天补充

posted @ 2021-08-06 19:36  Michail  阅读(342)  评论(0)    收藏  举报