ソースコード
WITH AVERAGE AS ( 
    SELECT
        AVG(POINT) AS AVERAGE 
    FROM
        TEST_RESULTS 
    WHERE
        TEST_ID = '100'
) 
, AVERAGE2 AS ( 
    SELECT
        SQRT( 
            AVG( 
                (T.POINT -  AVERAGE.AVERAGE) * (T.POINT -  AVERAGE.AVERAGE)
            )
        ) AS STANDARD_DEVIATION 
    FROM
        TEST_RESULTS AS T 
        CROSS JOIN AVERAGE 
    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 AVERAGE
CROSS JOIN AVERAGE2 
WHERE
TEST_RESULTS.TEST_ID = '100' 
ORDER BY DEV_VAL  DESC,USER_ID ASC
提出情報
提出日時2023/08/01 09:24:20
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者korogu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量79 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
79 MB
データパターン2
AC
78 MB
データパターン3
AC
79 MB
データパターン4
AC
78 MB