我是mysql查询的新手,但我一直在获取查询。基本上,我希望日期以水平方式(列)分组为年和月(1月17日,2月17日...),如下图所示。
数据如下图所示:
请帮助创建查询。
最佳答案
您可以进行条件汇总-每个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子句。关于mysql - Mysql计数查询按年和月水平分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43882938/