gpt4 book ai didi

mysql - 按月或周对 mysql 查询进行分组,并具有正确的开始/结束

转载 作者:行者123 更新时间:2023-11-29 20:35:43 27 4
gpt4 key购买 nike

我已经搜索并查看了很多关于 SO 的答案,但即使尝试应用我发现的所有答案,我也得到了不正确的结果。

我正在尝试按周周一到周日对我的 mysql 结果进行分组,并按月从第一天到该月的最后一天进行分组

我尝试过不同类型的分组,例如:

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

接下来是按月分组的总条目的示例查询,同样分组不会从该月的 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

感谢任何帮助

最佳答案

要从星期一开始,您应该使用

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)

关于mysql - 按月或周对 mysql 查询进行分组,并具有正确的开始/结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38812582/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com