ソースコード
WITH tbl_avg AS (
    SELECT
        TEST_ID
      , cast(AVG(POINT) as REAL) AS avg_pt
    FROM
        TEST_RESULTS
    GROUP BY
        TEST_ID
)
SELECT
      USER_ID AS USER
    , POINT AS PT
    , CASE
        WHEN hyoujunn = 0 THEN 50
        ELSE ROUND(50 + (POINT - avg_pt) * 10 / hyoujunn, 1)
      END AS DEV_VAL
FROM (
    SELECT
        *
      , POW(AVG(POW(TR.POINT - tbl_avg.avg_pt, 2)) OVER(), 0.5) AS hyoujunn -- 標準偏差
    FROM TEST_RESULTS AS TR
    INNER JOIN tbl_avg
        ON TR.TEST_ID = tbl_avg.TEST_ID
    WHERE
        TR.TEST_ID = '100'
     ) AS TR2
WHERE
    TR2.TEST_ID = '100'
ORDER BY
    DEV_VAL DESC
  , USER ASC
提出情報
提出日時2024/04/03 18:21:56
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者KK
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量84 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
83 MB
データパターン2
AC
83 MB
データパターン3
AC
83 MB
データパターン4
AC
84 MB