mysql行列转置-图文详解
生活随笔
收集整理的這篇文章主要介紹了
mysql行列转置-图文详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們想跑一個(gè)數(shù)據(jù),格式如下圖:
但是我們一般的mysql語句跑出來的數(shù)據(jù)卻是下面這樣,不但不方便查看,在數(shù)據(jù)量比較大的時(shí)候,我們需要每個(gè)地區(qū)都轉(zhuǎn)置粘貼一遍,耗時(shí)耗力還容易出錯(cuò),下面提供一個(gè)方法,可以讓跑出來的數(shù)據(jù)就是你一開始想要的樣子(上圖),不但方便線上化的查看,也方便線下的粘貼。
Mysql 行列轉(zhuǎn)置方法
代碼 - case when語句:
SELECT t.`地區(qū)`, COUNT(DISTINCT (case WHEN t.班級(jí) =1 THEN t.學(xué)號(hào) end)) AS'班級(jí)1', COUNT(DISTINCT (case WHEN t.班級(jí) =2 THEN t.學(xué)號(hào) end)) AS'班級(jí)2', COUNT(DISTINCT (case WHEN t.班級(jí) =3 THEN t.學(xué)號(hào) end)) AS'班級(jí)3', COUNT(DISTINCT (case WHEN t.班級(jí) =4 THEN t.學(xué)號(hào) end)) AS'班級(jí)4' FROM cm1_0625 t where t.`地區(qū)`<>'' GROUP BY 1;代碼 - IF語句:
SELECT t.`地區(qū)`, COUNT(DISTINCT IF (t.班級(jí) =1 , t.學(xué)號(hào) ,0)) AS'班級(jí)1', COUNT(DISTINCT IF (t.班級(jí) =2 , t.學(xué)號(hào) ,0)) AS'班級(jí)2', COUNT(DISTINCT IF (t.班級(jí) =3 , t.學(xué)號(hào) ,0)) AS'班級(jí)3', COUNT(DISTINCT IF (t.班級(jí) =4 , t.學(xué)號(hào) ,0)) AS'班級(jí)4' FROM cm1_0625 t where t.`地區(qū)`<>'' GROUP BY 1;運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的mysql行列转置-图文详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程书籍1020python
- 下一篇: python的序列类型及其特点_Flue