mysql - 为不同的天间隔创建mysql查询
问题描述
我有一个包含这些字段的表。booking_date, leave_date 客户可以预订 1 天到 1 年的酒店。我需要计算某人在不同天数的间隔内预订了多少天。天间隔可以是这样的:
1-7 days
7-14 days
15-30 days
31-45 days
46-60 days
61-90 days
91-120 days
121-180 days
我可以通过此查询获得任何日期的预订计数。
select DATEDIFF( booking_date,leaving_date) as day_diff
from hotel_booking
group by day_diff;
但无法为如上所述的不同天数间隔创建查询。我还需要按月计算这些计数组。
解决方案
您可以通过执行以下操作将这些值放在单独的行中:
select (case when booking_date < leaving_date + interval
7 day then '1-7 day'
when booking_date < leaving_date + interval
14 day then '7-14 day'
. . .
end) as diff,
count(*)
from hotel_booking
group by diff;