gpt4 book ai didi

Mysql查询按月分组

转载 作者:可可西里 更新时间:2023-11-01 07:59:36 28 4
gpt4 key购买 nike

我想做一些事情,比如从表中获取所有行

where date >='2012-05-05' and date<='2012-07-20'

我希望 MySQL 返回 "group by" 行 mont wise incremented from

2012-05-05 to 2012-06-05(incerement 1 month)
2012-06-06 to 2012-07-06(increment 1` month)
and remaining 2012-07-07 to 2012-07-20 (group the remaining 14 days)

我如何编写查询来实现相同的目的?

谢谢...

最佳答案

试试这个解决方案:

您可以GROUP BY 从您的参数最小值 (2012-05-05) + 1 到每行中的日期所经过的月数,通过 TIMESTAMPDIFF()功能:

GROUP BY TIMESTAMPDIFF(MONTH, '2012-05-05' + INTERVAL 1 DAY, date)

我们为您的最小参数 +1 天的原因是:

  • 2012-05-052012-06-04 是 0 个月,但是...
  • 2012-05-052012-06-05 是 1 个月

^ 因此,2012-06-05 上的行将与过去 0 个月的日期分开分组,而我们实际上希望它与它们分组。


编辑:我在摆弄这个解决方案,不仅按月份间隔分组,而且还显示来自 每个间隔的日期。

检查一下:

SQLFiddle Demo

关于Mysql查询按月分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715782/

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