如何使用 SQL 创建查询以获取每一行连续可用的房间。例如,我想找到连续 3 天至少有 3 个可用房间
原始表格
Date Available rooms
---- ---------------
01/12/16 4
02/12/16 5
03/12/16 5
04/12/16 5
05/12/16 4
06/12/16 0
07/12/16 3
08/12/16 4
09/12/16 4
结果如下
Date EndDate
-------- --------
01/12/16 03/12/16
02/12/16 04/12/16
03/12/16 05/12/16
07/12/16 09/12/16
最佳答案
尝试像下面的查询那样使用 LEAD() 函数
SELECT d as StartDate, EndDate
FROM
(SELECT d,
CASE
WHEN available_rooms > 2
AND LEAD(available_rooms,1) OVER(order by d) > 2
AND LEAD(available_rooms,2) OVER(order by d) > 2
THEN LEAD(d,2) OVER(order by d)
END EndDate
FROM table1 t) t1
WHERE EndDate is not null;
下面是我收到的输出
关于sql-server - SQL 每行连续日期可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122750/