ソースコード
SELECT * FROM test_results;
WITH SUB AS(
    SELECT 
        AVG(POINT) AS AVERAGE
    FROM 
        test_results
    WHERE
        test_id='100'
),
    SUB2 AS (
    SELECT 
        SQRT(
            AVG(
                (test_results.POINT - sub.average)*(test_results.POINT - sub.average)
            )
        ) AS standard_deviation
    FROM
        test_results
        CROSS JOIN sub
    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 sub
    CROSS JOIN sub2
WHERE
    test_id='100'
ORDER BY
    DEV_VAL DESC,
    USER
提出情報
提出日時2023/03/30 12:41:18
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者Yossy
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量78 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
77 MB
データパターン2
AC
77 MB
データパターン3
AC
78 MB
データパターン4
AC
78 MB