mysql 列轉行以及年月分組

2021-09-01 19:44:03 字數 1130 閱讀 1964

select count(distinct(a.rect_id)) zcount, a.job_dept, 

date_format(submit_date, '%y-%m') zsubmit_date

from

表名 a

where

a.statu = 3

and a.rstatu = 2

and a.job_dept in ('19', '20', '21')

group by

a.job_dept,

date_format(submit_date, '%y-%m')

其中關鍵在於date_format(submit_date, '%y-%m')對時間年月進行了分組排序

select

zsubmit_date,

max(case when job_dept = '19' then zcount else 0 end ) 19zcount,

max(case when job_dept = '20' then zcount else 0 end ) 20zcount,

max(case when job_dept = '21' then zcount else 0 end ) 21zcount

from

(select

count(distinct(a.rect_id)) zcount, a.job_dept,

date_format(submit_date, '%y-%m') zsubmit_date

from

表名 a

where

a.statu = 3

and a.rstatu = 2

and a.job_dept in ('19', '20', '21')

group by

a.job_dept,

date_format(submit_date, '%y-%m')

) qgroup by

zsubmit_date

以上是mysql的列轉行。其中關鍵點是case when的用法,用其來完成列轉行的操作。用法等同於if else

分組迴圈查詢實現列轉行

開發工具與關鍵技術 visualstudio 2015 mvc在做專案的過程中遇到過這樣乙個問題,我需要把資料庫一張表的多條費用資料查出來,並且讓他在一行顯示,多條費用是指不同的費用,而我這個資料庫表只有乙個欄位來儲存這些費用,這個字段儲存的是外來鍵,多種費用是固定在另一張表裡,新增的時候只需要把外...

Mysql 列轉行 例項

箱表 create table yoshop shang activity box id int 11 not null auto increment comment 編號 activity id int 11 not null comment 活動id number int 11 not null...

Mysql 採用列轉行

欄位的拆分 使用函式substring index str,delim,count str 拆分物件 delim 拆分標識 substring index 搜尋時執行區分大小寫的匹配 delim count 拆分方式 如果 count為正,則返回最終分隔符左側的所有內容 從左側開始計算 如果coun...