ソースコード
/*
ある映画館の座席の予約状況を管理している、座席予約テーブル(SEAT_RESERVE)がある。座席数は、列ID(LINE_ID)がA~Eの5列で各列に1~15まで席番号(SEAT_NO)があり全部で75席で、データも75席分が揃っているものとする。
また、予約されている席は、予約状況(RSV_STATUS)が '1' となっており、予約されていない席は '0' となっている。
この座席予約テーブルから、列ID単位で予約されていない連続した3つの席を探して列IDと先頭の座席番号と3番目の座席番号を表示しなさい。

表示項目は以下とする。(エイリアスを使用し→の項目名とする)

列ID → LINE
先頭の座席番号 → SEAT_F
3番の座席番号 → SEAT_T
表示順

列IDの降順
先頭の座席番号の昇順
*/

with
a as (
select line_id, seat_no,
lag(seat_no) over (partition by line_id order by seat_no) as slag,
lead(seat_no) over (partition by line_id order by seat_no) as slead
from seat_reserve
where rsv_status = 0
)
select line_id as LINE, slag as SEAT_F, slead as SEAT_T
from a
where slag + 1 = seat_no and seat_no + 1 = slead
order by 1 desc, 2
提出情報
提出日時2024/06/23 16:42:18
コンテスト第13回 SQLコンテスト
問題空席検索
受験者wxy_zzz
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量87 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
87 MB
データパターン2
AC
83 MB
データパターン3
AC
86 MB