MySQL日期列转行list_mysql列转行以及年月分组实例

本文展示了如何在MySQL中将日期列转换为行并按年月进行分组,通过DATE_FORMAT函数对submit_date进行格式化,然后在查询中使用CASE语句按job_dept分组统计zcount。内容包括内嵌查询、GROUP BY和MAX函数的应用。
摘要由CSDN通过智能技术生成

如下所示:

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列转行以及年月分组实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易采站长站。

您可能感兴趣的文章:Mysql利用group by分组排序MYSQL每隔10分钟进行分组统计的实现方法mysql使用GROUP BY分组实现取前N条记录的方法MySQL分组查询Group By实现原理详解详解MySQL中的分组查询与连接查询语句mysql 将字段time按天/月/年分组mysql分组取每组前几条记录(排名) 附group by与order by的研究mysql获取分组后每组的最大值实例详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值