找出连续两个或者两个以上是空座位的seat_id.
表:cinema
seat_id | free |
---|---|
1 | 1 |
2 | 0 |
3 | 1 |
4 | 1 |
5 | 1 |
对于如上样例,你的查询语句应该返回如下结果。
seat_id |
---|
3 |
4 |
5 |
注意:
- seat_id 字段是一个自增的整数,free 字段值(‘1’ 表示空余, ‘0’ 表示已被占据)。
- 连续空余座位的定义是大于等于 2 个连续空余的座位
sql:
select
seat_id
from
(
select
seat_id,
free,
case when free=1 and (lag(free,1) over(order by seat_id )=1 or
lead(free,1) over(order by seat_id)=1) then 1 else 0 end as is_free
from cinema
)t
where t.is_free=1