ソースコード
WITH SUB1 AS (
    SELECT
        SESSION_ID
        , CAST(REPLACE(PROCESS_ID, 'STEP', '') AS INT)                      AS PROCNUM
        , ROW_NUMBER() OVER (PARTITION BY SESSION_ID ORDER BY EX_TIMESTAMP) AS RNUM
    FROM
        PROCESS_LOG
),
SUB2 AS (
    SELECT
        SESSION_ID
        , MIN(RNUM) AS MINRNUM
    FROM
        SUB1
    WHERE
        PROCNUM <> RNUM
    GROUP BY
        SESSION_ID
)
SELECT 
    'STEP' || PROCNUM AS PROCESS
    , COUNT(DISTINCT
        CASE WHEN MINRNUM IS NULL OR MINRNUM > RNUM THEN a.SESSION_ID END
    ) AS CNT
FROM SUB1 a
    LEFT JOIN SUB2 b ON
    a.SESSION_ID = b.SESSION_ID
GROUP BY
    PROCNUM
ORDER BY
    PROCNUM
;
提出情報
提出日時2024/02/09 16:26:02
コンテスト第10回 SQLコンテスト
問題顧客行動分析
受験者SQL2022
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量88 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
88 MB
データパターン2
AC
83 MB
データパターン3
AC
86 MB
データパターン4
AC
85 MB