LeetCode 603.连续空余座位

数据准备

drop table Cinema;

Create table If Not Exists Cinema (seat_id int primary key auto_increment, free bool);
Truncate table Cinema;
insert into Cinema (seat_id, free) values ('1', '1');
insert into Cinema (seat_id, free) values ('2', '0');
insert into Cinema (seat_id, free) values ('3', '1');
insert into Cinema (seat_id, free) values ('4', '1');
insert into Cinema (seat_id, free) values ('5', '1');

需求

编写一个SQL查询来报告电影院所有连续可用的座位。返回按 seat_id 升序排序的结果表。测试用例的生成使得两个以上的座位连续可用。

输入

在这里插入图片描述

输出

with t1 as (
    select *,
       coalesce(lag(free,1) over (),-1) rn1
    from Cinema
    order by seat_id
)
select seat_id
from t1
where (free-rn1) in (0,1)
;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值