ソースコード
WITH AVG as (
SELECT
 AVG(POINT) as AVG
FROM TEST_RESULTS
WHERE TEST_ID = '100'
),

DIF as (
  SELECT
  SQRT(
    AVG((T.POINT - AVG.AVG) * (T.POINT - AVG.AVG)
      )) as STANDARD_DEVIATION
  FROM TEST_RESULTS as T
  CROSS JOIN AVG
  WHERE TEST_ID = '100'
)

SELECT
  USER_ID as USER,
  POINT as PT,
  CASE WHEN STANDARD_DEVIATION <> 0 THEN 
    ROUND((((POINT - AVG) * 10) / STANDARD_DEVIATION),1) + 50 
  ELSE 50 END  as DEV_VAL
FROM TEST_RESULTS
CROSS JOIN AVG 
CROSS JOIN DIF
WHERE TEST_ID = '100'
ORDER BY DEV_VAL desc,USER asc
提出情報
提出日時2023/09/08 15:12:37
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者110047
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量77 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
77 MB
データパターン2
AC
75 MB
データパターン3
AC
76 MB
データパターン4
AC
75 MB