ソースコード
-- ある映画館の座席の予約状況を管理している、座席予約テーブル(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 threezeros AS (
    SELECT
        *
        , LAG(SEAT_NO, 1) OVER(ORDER BY LINE_ID, SEAT_NO) AS SEAT_F
        , LEAD(SEAT_NO, 1) OVER(ORDER BY LINE_ID, SEAT_NO) AS SEAT_T
        , SUM(RSV_STATUS) OVER(PARTITION BY LINE_ID ORDER BY LINE_ID, SEAT_NO ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) as FLAG
    FROM 
        SEAT_RESERVE)
SELECT
    LINE_ID LINE
    , SEAT_F
    , SEAT_T
FROM
    threezeros
WHERE FLAG = 3
ORDER BY 
    LINE_ID DESC, SEAT_F ASC
;
提出情報
提出日時2024/07/08 14:52:49
コンテスト第13回 SQLコンテスト
問題空席検索
受験者tomtom
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量86 MB
メッセージ
テストケース(通過数/総数)
0/3
状態
メモリ使用量
データパターン1
WA
84 MB
データパターン2
WA
86 MB
データパターン3
WA
85 MB