ソースコード
-- SELECT STUDENT AS [学生],
--     SCORE AS [得点],
--     AVERAGE AS [平均点],
--     STANDARD_DEVIATION AS [標準偏差],
--     -- 得点と平均点との差に10を掛けて標準偏差で割り50を足し偏差値を求める
--     (((SCORE - AVERAGE) * 10) / STANDARD_DEVIATION) + 50 AS [偏差値]
WITH TEST_RESULTS2 AS (
    SELECT USER_ID,
        POINT
    FROM TEST_RESULTS
    WHERE TEST_ID = '100'
),
STDEV AS (
    SELECT SQRT(
            SUM(
                POWER(
                    POINT - (
                        SELECT AVG(POINT)
                        FROM TEST_RESULTS2
                    ),
                    2
                )
            ) / COUNT(*)
        ) AS std_dev
    FROM TEST_RESULTS2
)
SELECT USER_ID USER,
    POINT PT,
    ROUND(
        (((POINT - AVERAGE) * 10) / STANDARD_DEVIATION) + 50,
        1
    ) AS DEV_VAL
FROM (
        SELECT USER_ID,
            POINT,
            -- AVG関数で平均点を求める
            (
                SELECT AVG(POINT)
                FROM TEST_RESULTS2
            ) AS AVERAGE,
            -- STDEVP関数で標準偏差を求める
            (
                SELECT std_dev
                FROM STDEV
            ) AS STANDARD_DEVIATION
        FROM TEST_RESULTS2
    ) AS TEST_RESULTS2
ORDER BY DEV_VAL DESC,
    USER_ID;
提出情報
提出日時2023/02/23 01:20:08
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者swamp
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量76 MB
メッセージ
テストケース(通過数/総数)
3/4
状態
メモリ使用量
データパターン1
AC
75 MB
データパターン2
WA
76 MB
データパターン3
AC
76 MB
データパターン4
AC
76 MB