mysql 行轉列 (帶日期)

從網上找了很多行轉列的。基本都是2行的行轉列。不帶日期分組的。


借鑑了另一個哥們的文章,實現了自己想要的結果,寫出來大家可以參考。以後自己遇到同樣情況,也可以有個備份
借鑑的地址爲
https://www.cnblogs.com/gisblogs/p/3966822.html


處理過程:
我自己有的數據,這個已經是處理後的(源數據)

圖1
[img]http://dl2.iteye.com/upload/attachment/0127/7614/de307a15-3cac-3d7c-b238-4d8e5b3050cc.png[/img]

下圖是我自己想要實現得類似的行轉列的樣子,但是下圖,並沒有完全實現行轉列。行和列還是分離的,只是多了列,所有的行並沒有統一與合併數據

圖2
[img]http://dl2.iteye.com/upload/attachment/0127/7616/7aec6550-f8a0-35f3-960e-c89e9b717328.png[/img]




最終實現的結果:
圖3

[img]http://dl2.iteye.com/upload/attachment/0127/7624/1ffcbbf0-0c35-3a65-b115-70611781464a.png[/img]



下面是自己的sql



SELECT IFNULL(dayt, 'total') AS total,
SUM(IF(tasktype='type0',num,0)) AS 'type0',
SUM(IF(tasktype='type1',num,0)) AS 'type1',
SUM(IF(tasktype='type2',num,0)) AS 'type2',
SUM(IF(tasktype='type3',num,0)) AS 'type3',
SUM(IF(tasktype='type4',num,0)) AS 'type4',
SUM(IF(tasktype='type5',num,0)) AS 'type5',
SUM(IF(tasktype='type6',num,0)) AS 'type6',
SUM(IF(tasktype='type7',num,0)) AS 'type7',
SUM(IF(tasktype='type8',num,0)) AS 'type8'

FROM (
//省略中間的數據查詢。爲圖1中的整理後的數據,也是源數據
)a

GROUP BY dayt WITH ROLLUP
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章