ソースコード
with A as (
    select SESSION_ID , PROCESS_ID
        , cast(substring(PROCESS_ID, 5,1) as int)  as STEP_NO
        , rank() over ( partition by SESSION_ID order by EX_TIMESTAMP) as RANK
    from PROCESS_LOG
    order by SESSION_ID asc, EX_TIMESTAMP asc
) , B as (
    select SESSION_ID
        , min(RANK) as MIN_RANK
    from A
    where STEP_NO != RANK
    group by SESSION_ID
)
select A.PROCESS_ID as PROCESS 
    ,count( distinct case when cast(substring(PROCESS_ID, 5,1) as int) < B.MIN_RANK
                or B.MIN_RANK is NULL 
            then A.SESSION_ID
            end
    ) as CNT
    from A
    left outer join B on A.SESSION_ID = B.SESSION_ID
    
    group by A.PROCESS_ID
    order by A.PROCESS_ID
提出情報
提出日時2023/12/20 14:49:24
コンテスト第10回 SQLコンテスト
問題顧客行動分析
受験者hmasa
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量87 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
86 MB
データパターン2
AC
83 MB
データパターン3
AC
86 MB
データパターン4
AC
87 MB