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