ソースコード
-- DELETE FROM TEST_RESULTS WHERE TEST_ID <> '100';
WITH SUB AS (
    SELECT SQRT(AVG(D)) AS S
    FROM (
        SELECT (POINT - (SELECT AVG(POINT) FROM TEST_RESULTS WHERE TEST_ID = '100')) * (POINT - (SELECT AVG(POINT) FROM TEST_RESULTS WHERE TEST_ID = '100'))  AS D
        FROM TEST_RESULTS
        WHERE TEST_ID = '100'
    )
)
SELECT USER_ID AS USER, POINT AS PT, CASE WHEN S = 0 THEN 50 ELSE ROUND((POINT - (SELECT AVG(POINT) FROM TEST_RESULTS WHERE TEST_ID = '100')) * 10 / S + 50, 1) END AS DEV_VAL
FROM TEST_RESULTS CROSS JOIN SUB
WHERE TEST_ID = '100'
ORDER BY DEV_VAL DESC, USER;
提出情報
提出日時2023/06/18 21:55:40
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者roaris
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量95 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
77 MB
データパターン2
AC
81 MB
データパターン3
AC
95 MB
データパターン4
AC
87 MB