ソースコード
WITH tbl_1 AS (
SELECT
    AVG(POINT) AS AVG
    ,COUNT(*) AS N
FROM
    TEST_RESULTS
WHERE
    TEST_ID = '100')
,tbl_2 AS (
SELECT
    SQRT(AVG((POINT - AVG) * (POINT - AVG))) AS X
    ,AVG
FROM
    TEST_RESULTS
CROSS JOIN 
    tbl_1
WHERE
    TEST_ID = '100')
SELECT
    USER_ID AS USER
    ,POINT AS PT
    ,CASE 
        WHEN X <> 0 
            THEN ROUND( 
            (((POINT - AVG) * 10) / X), 1) + 50 
        ELSE 50 END AS DEV_VAL
FROM
    TEST_RESULTS
CROSS JOIN 
    tbl_2
WHERE
    TEST_ID = '100' 
ORDER BY
    DEV_VAL DESC
    ,USER
    
提出情報
提出日時2023/07/14 17:36:32
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者ykkn_2525
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量87 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
82 MB
データパターン2
AC
82 MB
データパターン3
AC
85 MB
データパターン4
AC
87 MB