欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 Java代码 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 ('1
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
Java代码
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')对时间年月进行了分组排序
Java代码
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的用法,用其来完成列转行的操作。
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务