我已经搜索并查看了很多关于SO的答案,但即使尝试应用所有我发现的结果都不正确。
我试图按星期一星期一分组我的mysql结果,按月从第1天到最后一天分组
我尝试了不同类型的分组:
GROUP BY YEARWEEK(data)
GROUP BY WEEK(data)
几个星期和
GROUP BY MONTH(data)
几个月
所有这些分组方法都会返回不正确的分组。一些结果从一个月或一周的随机日开始。
这是一个示例查询,它从上个月的条目中得到结果除以星期,尽管星期分组不会导致星期几的星期。
SELECT *, count(id) AS count FROM leadz WHERE YEAR(data) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(data) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) GROUP BY YEARWEEK(data)
这些是我得到的一周结果:
2016-07-01 2016-07-04 2016-07-16 2016-07-17 2016-07-25 2016-07-31
接下来是按月分组的总条目的示例查询,再次gropuing不是从月份的第1天开始
SELECT *, count(id) AS count FROM leadz GROUP BY MONTH(data)
这些是我得到的月份段:
2016-04-18 2016-05-25 2016-06-01 2016-07-25 2016-08-02
任何帮助表示赞赏
答案 0 :(得分:0)
要在星期一开始,你应该使用
YEARWEEK(data, 1)
或
WEEK(data,1)
请参阅参考资料http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
所以你的选择应该是
SELECT *, count(id) AS count
FROM leadz
WHERE YEAR(data) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(data) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
GROUP BY YEARWEEK(data, 1)