コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
WITH SUB1 AS (
-- SESSION_ID ごとに EX_TIMESTAMP 順にランクづけし、STEP N と RANK M を一覧にする
SELECT
SESSION_ID
, PROCESS_ID
, RANK() OVER (PARTITION BY SESSION_ID ORDER BY EX_TIMESTAMP) AS RANK
FROM
PROCESS_LOG
ORDER BY
SESSION_ID ASC
, EX_TIMESTAMP ASC
)
, SUB2 AS (
-- STEP の番号 N とランク M が異なる MIN まではカウント対象
SELECT
SESSION_ID
, MIN(RANK) AS MIN
FROM
SUB1
WHERE
CAST(SUBSTR(SUB1.PROCESS_ID, 5, 1) AS INT) != RANK
GROUP BY
SESSION_ID
)
SELECT
PROCESS_ID AS PROCESS
-- SUB2 を外部結合し、MIN 未満の STEP を数え上げる
-- このとき、MIN が NULL の場合は存在する STEP を全て数え上げる
, COUNT(
DISTINCT CASE
WHEN CAST(SUBSTR(SUB1.PROCESS_ID, 5, 1) AS INT) < SUB2.MIN
OR SUB2.MIN IS NULL
THEN SUB1.SESSION_ID
END
) AS CNT
FROM
SUB1
LEFT OUTER JOIN SUB2
ON SUB1.SESSION_ID = SUB2.SESSION_ID
GROUP BY
PROCESS_ID
ORDER BY
PROCESS_ID;
提出情報
提出日時 | 2023/12/18 16:23:34 |
コンテスト | 第10回 SQLコンテスト |
問題 | 顧客行動分析 |
受験者 | hattsuriboy |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 92 MB |
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
92 MB
データパターン2
AC
91 MB
データパターン3
AC
86 MB
データパターン4
AC
84 MB