【问题标题】:Mysql count query by Grouping Year and Month horizontalMysql按横向分组年月计数查询
【发布时间】:2017-05-10 03:03:58
【问题描述】:

我是 mysql 查询的新手,我一直在获取查询。基本上,我希望日期以水平方式(列)分组为年和月(17 年 1 月,2017 年 2 月...),如下图所示。

数据如下图所示:

请帮助创建查询。

【问题讨论】:

  • 认真考虑处理应用代码中数据显示的问题

标签: mysql


【解决方案1】:

您可以进行条件聚合 - 每个 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 子句。

【讨论】:

  • 非常感谢。你节省了我的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
相关资源
最近更新 更多