ソースコード
WITH MEAN AS(
    SELECT
        AVG(POINT) AS AVERAGE
    FROM
        TEST_RESULTS
    WHERE
        TEST_ID = '100'
)
, VAR AS(
    SELECT
        SQRT(
            AVG(
                (T.POINT - MEAN.AVERAGE) * (T.POINT- MEAN.AVERAGE)
            )
        ) AS STANDARD_DEVIATION
    FROM
        TEST_RESULTS AS T
            CROSS JOIN MEAN
    WHERE
        TEST_ID = '100'
)
SELECT
    USER_ID AS USER
    ,POINT AS PT
    ,CASE
        WHEN STANDARD_DEVIATION <> 0
            THEN ROUND(
                (((POINT - AVERAGE) * 10) / STANDARD_DEVIATION)
                , 1
            ) + 50
        ELSE 50
    END AS DEV_VAL
FROM
    TEST_RESULTS
        CROSS JOIN MEAN
        CROSS JOIN VAR
WHERE
    TEST_ID = '100'
ORDER BY
    DEV_VAL DESC
    ,USER
提出情報
提出日時2024/03/08 10:09:20
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者citrus_sudachi
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量83 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
82 MB
データパターン2
AC
82 MB
データパターン3
AC
82 MB
データパターン4
AC
83 MB