gpt4 book ai didi

mysql - 按 2 个月的时间段对出生日期进行分组

转载 作者:行者123 更新时间:2023-11-29 13:04:59 25 4
gpt4 key购买 nike

我正在运行一个简单的查询,该查询返回满 2 岁的 child 数量(上个月或下个月的生日)。以下查询返回带有计数的单行:

SELECT COUNT(*)
FROM table AS t
-- Child turning 2
AND t.dob <= DATE_SUB(NOW(), INTERVAL 23 MONTH)
AND t.dob >= DATE_SUB(NOW(), INTERVAL 25 MONTH)

我希望能够在此查询的基础上构建并返回多个计数行,每个计数行为期 2 个月,以便我可以预测 future 的 2 岁生日。

我可以做这样的事情:

SELECT COUNT(*)
FROM table AS t
-- Child turning 2
AND t.dob <= DATE_SUB(NOW(), INTERVAL 23 MONTH)
AND t.dob >= DATE_SUB(NOW(), INTERVAL 25 MONTH)

UNION

SELECT COUNT(*)
FROM table AS t
-- Child turning 2
AND t.dob <= DATE_SUB(NOW(), INTERVAL 21 MONTH)
AND t.dob >= DATE_SUB(NOW(), INTERVAL 23 MONTH)

UNION...

但这效率低下且非常笨拙。

作为输出,我希望看到这样的内容:

count    |date range
---------------------------------
327 |2012-03-01 - 2012-04-31
---------------------------------
532 |2012-05-01 - 2012-06-31

我认为我需要使用 GROUP BY 做一些事情,但不确定如何去做。

非常感谢。

最佳答案

select
case
when t.dob between date_sub(now(), interval 25 month) and date_sub(now(), interval 23 month) then 'between -25 and -23 month'
when t.dob between date_sub(now(), interval 22 month) and date_sub(now(), interval 20 month) then 'between -22 and -20 month'
when t.dob between date_sub(now(), interval 19 month) and date_sub(now(), interval 17 month) then 'between -19 and -17 month'
when t.dob between date_sub(now(), interval 16 month) and date_sub(now(), interval 14 month) then 'between -16 and -14 month'
end as my_ranges,
count(*)
from
t
group by my_ranges

关于mysql - 按 2 个月的时间段对出生日期进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843402/

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