コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
INSERT INTO
PROCESS_LOG(SESSION_ID, PROCESS_ID, USER_ID, EX_TIMESTAMP) VALUES("aiueo", "STEP1", 0, "2023-11-01 00:01:00");
INSERT INTO
PROCESS_LOG(SESSION_ID, PROCESS_ID, USER_ID, EX_TIMESTAMP) VALUES("aiueo", "STEP2", 0, "2023-11-01 00:02:00");
INSERT INTO
PROCESS_LOG(SESSION_ID, PROCESS_ID, USER_ID, EX_TIMESTAMP) VALUES("aiueo", "STEP3", 0, "2023-11-01 00:03:00");
INSERT INTO
PROCESS_LOG(SESSION_ID, PROCESS_ID, USER_ID, EX_TIMESTAMP) VALUES("aiueo", "STEP4", 0, "2023-11-01 00:04:00");
INSERT INTO
PROCESS_LOG(SESSION_ID, PROCESS_ID, USER_ID, EX_TIMESTAMP) VALUES("aiueo", "STEP5", 0, "2023-11-01 00:05:00");
WITH T1 AS(
SELECT
MAX(P1.SESSION_ID) AS SESSION_ID,
MAX(CAST(SUBSTR(P1.PROCESS_ID, -1) AS INTEGER)) AS PROCESS_ID
FROM
PROCESS_LOG AS P1
CROSS JOIN
PROCESS_LOG AS P2
WHERE
P1.SESSION_ID = P2.SESSION_ID
GROUP BY
P1.SESSION_ID,
P1.PROCESS_ID
HAVING
(
MAX(
CASE
WHEN P2.PROCESS_ID < P1.PROCESS_ID THEN P2.EX_TIMESTAMP
ELSE NULL
END
) IS NULL OR MAX(P1.EX_TIMESTAMP) > MAX(
CASE
WHEN P2.PROCESS_ID < P1.PROCESS_ID THEN P2.EX_TIMESTAMP
ELSE NULL
END
)
) AND (
MIN(
CASE
WHEN P2.PROCESS_ID > P1.PROCESS_ID THEN P2.EX_TIMESTAMP
ELSE NULL
END
) IS NULL OR MAX(P1.EX_TIMESTAMP) < MIN(
CASE
WHEN P2.PROCESS_ID > P1.PROCESS_ID THEN P2.EX_TIMESTAMP
ELSE NULL
END
)
)
), T2 AS(
SELECT
MAX(P1.SESSION_ID) AS SESSION_ID,
MAX(P1.PROCESS_ID) AS PROCESS_ID
FROM
T1 AS P1
CROSS JOIN
T1 AS P2
WHERE
P1.SESSION_ID = P2.SESSION_ID
GROUP BY
P1.SESSION_ID,
P1.PROCESS_ID
HAVING
MAX(P1.PROCESS_ID) = SUM(
CASE
WHEN P2.PROCESS_ID <= P1.PROCESS_ID THEN 1
ELSE 0
END
)
)
SELECT
'STEP' || MAX(PROCESS_ID) AS PROCESS,
COUNT(*) - 1 AS CNT
FROM
T2
GROUP BY
PROCESS_ID
ORDER BY
PROCESS ASC
提出情報
提出日時 | 2023/12/17 00:40:58 |
コンテスト | 第10回 SQLコンテスト |
問題 | 顧客行動分析 |
受験者 | tokusakurai |
状態 (詳細) | WA (Wrong Answer: 誤答) |
メモリ使用量 | 87 MB |
メッセージ
テストケース(通過数/総数)
0/4
状態
メモリ使用量
データパターン1
WA
87 MB
データパターン2
WA
84 MB
データパターン3
WA
85 MB
データパターン4
WA
85 MB