我刚开始使用mysql查询,而且我一直在获取查询。基本上,我希望将日期分组为年份和月份(1月17日,2月17日.)以水平方式(列),如下图所示。

数据如下图所示:

请帮助创建查询。
发布于 2017-05-10 03:15:31
您可以进行条件聚合-每个login_id一次,然后总体上,然后合并这两个结果。
Select login_idindex,
Sum(date_format(visitdate, '%Y%m') = '201701' ) as jan_17,
Sum(date_format(visitdate, '%Y%m') = '201702' ) as feb_17,
. . .,
Count(*) as total
From your_table
Where visitdate between ? and ?
Group by login_idindex
Union all
Select null,
Sum(date_format(visitdate, '%Y%m') = '201701' ) as jan_17,
Sum(date_format(visitdate, '%Y%m') = '201702' ) as feb_17,
. . .,
Count(*) as total
From your_table
Where visitdate between ? and ?;使用实际日期替换?,如果使用所有日期,则删除where子句。
https://stackoverflow.com/questions/43882938
复制相似问题