mysql 分组 列转行,mysql 列转行以及岁月分组
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')
) q
GROUP BY
zsubmit_date
以上是mysql的列轉行。其中關鍵點是case when的用法,用其來完成列轉行的操作。用法等同于if else
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的mysql 分组 列转行,mysql 列转行以及岁月分组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 土豆的藤能吃吗
- 下一篇: 创建mat二值图 matlab,Open