我在SO上搜索和查看了很多答案,但即使尝试应用我发现的所有答案,我也得到了不正确的结果。
我尝试将mysql结果按周、按月、从第1天到每月最后一天进行分组
我尝试过不同类型的分组,例如:
GROUP BY YEARWEEK(data)
GROUP BY WEEK(data)几个星期后
GROUP BY MONTH(data)几个月来
所有这些分组方法都返回不正确的分组。一些结果开始于一个月或一周的任意几天。
这是一个示例查询,它从上个月的条目中获得除以周的结果,尽管周分组并不是从mon-sun开始的周。
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接下来是按月分组的总条目的示例查询,同样,摸索不是从该月的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感谢您的任何帮助
发布于 2016-08-07 17:12:55
对于星期一的开始,您应该使用
YEARWEEK(data, 1)或
WEEK(data,1)请参阅ref 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)https://stackoverflow.com/questions/38812582
复制相似问题