首页 > 解决方案 > 为不同的天间隔创建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;

但无法为如上所述的不同天数间隔创建查询。我还需要按月计算这些计数组。

标签: mysqlsql

解决方案


您可以通过执行以下操作将这些值放在单独的中:

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;

推荐阅读