ソースコード
WITH SUB AS (
 SELECT
  AVG(POINT) AS AVERAGE
 FROM
  TEST_RESULTS
 WHERE
  TEST_ID = '100'
),
SUB2 AS(
 SELECT
  SQRT(
   AVG(
    (T.POINT - SUB.AVERAGE) * (T.POINT - SUB.AVERAGE)
    )
  ) AS STANDARD_DEVIATION
   FROM
    TEST_RESULTS AS T
    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_ID ASC;


   
提出情報
提出日時2024/08/26 10:52:30
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者tatataka
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量98 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
97 MB
データパターン2
AC
84 MB
データパターン3
AC
83 MB
データパターン4
AC
98 MB