查詢的時候將多行和併為一行的多列
阿新 • • 發佈:2019-01-28
問題描述:
開發過程中往往查詢出來的內容是多列,但是因為框架中的grid的原因需要將這多行設定為一行中的多列,思路是通過case when轉換將多行轉換為一行中的多列。
表結構和表結構如下:
統計各個型別的數量,將其放入echarts或grid中,一般的根據型別統計的SQL如下:
select t.type,sum(1) num from test t group by t.type order by t.type
查詢結果如下:可見途中是一類一行如果將一行轉化為一行中的一列:
需求效果圖如下:
通過case when 實現轉換,SQL如下:
select sum(case when type = 'A' then num else 0 end) A, sum(case when type = 'B' then num else 0 end) B, sum(case when type = 'C' then num else 0 end) C, sum(case when type = 'D' then num else 0 end) D from (select t.type, sum(1) num from test t group by t.type order by t.type)