ソースコード
SELECT
    SV1.LINE_ID AS LINE
    , SV1.SEAT_NO AS SEAT_F
    -- グルーピングした最大(3件目)の座席番号を取得
    , MAX(SV2.SEAT_NO) AS SEAT_T 
FROM
    SEAT_RESERVE AS SV1 
    -- 3番目の座席番号を取得するために、同一テーブルを自己結合する
    INNER JOIN SEAT_RESERVE AS SV2 
        ON SV1.LINE_ID = SV2.LINE_ID 
WHERE
   -- チェックする先頭の座席番号から3番目までの座席番号を順番に取得する
    SV2.SEAT_NO BETWEEN SV1.SEAT_NO AND SV1.SEAT_NO + (3 - 1) 
GROUP BY
    -- 取得した3件のデータを列ID、座席番号でグルーピング
    SV1.LINE_ID
    , SV1.SEAT_NO 
HAVING
    -- NULLIF関数で予約状況='1'の場合はカウント対象外として
    -- 予約状況='0'が3件続いている場合を対象とする
    COUNT(NULLIF(SV2.RSV_STATUS, '1')) = 3 
ORDER BY
    SV1.LINE_ID DESC
    , SV1.SEAT_NO ASC;
提出情報
提出日時2024/05/30 14:44:56
コンテスト第13回 SQLコンテスト
問題空席検索
受験者admin
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量85 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
83 MB
データパターン2
AC
85 MB
データパターン3
AC
82 MB