ソースコード
WITH T1 AS (
SELECT
    *
,	ROW_NUMBER() OVER (PARTITION BY LINE_ID ORDER BY SEAT_NO ASC) AS SEQ1
FROM
	SEAT_RESERVE
WHERE
    RSV_STATUS = '0'
ORDER BY
    LINE_ID, SEAT_NO
),
T2 AS (
SELECT
    LINE_ID
,   SEAT_NO
,   (SEAT_NO - SEQ1) AS SEQ2
,   MIN(SEAT_NO) AS MIN_SEAT_NO
,   MAX(SEAT_NO) AS MAX_SEAT_NO
,   COUNT(*) AS COUNT
FROM
    T1
GROUP BY
    1, 3
HAVING COUNT(*) >= 3
)
SELECT
    S1.LINE_ID AS LINE
,   S1.SEAT_NO AS SEAT_F
,   S1.SEAT_NO + 2 AS SEAT_T
FROM
    T2
        INNER JOIN SEAT_RESERVE AS S1
            ON  S1.LINE_ID = T2.LINE_ID
            AND S1.SEAT_NO >= T2.MIN_SEAT_NO
            AND S1.SEAT_NO <= T2.MIN_SEAT_NO + COUNT - 3
WHERE
    RSV_STATUS = '0'
ORDER BY
    1 DESC
,   2 ASC
提出情報
提出日時2024/06/21 15:53:11
コンテスト第13回 SQLコンテスト
問題空席検索
受験者tomoko
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量84 MB
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
84 MB
データパターン2
AC
83 MB
データパターン3
AC
84 MB