ソースコード
WITH BASE AS(
  SELECT
    *
  FROM
    TEST_RESULTS
  WHERE
    TEST_ID = '100'
),
AVG_POINT AS (
  SELECT
    avg(POINT)
  FROM
    BASE
),
BASE2 AS (
  SELECT
    USER_ID,
    POINT,
    (
      POINT - (
        SELECT
          *
        FROM
          AVG_POINT
      )
    ) * (
      POINT - (
        SELECT
          *
        FROM
          AVG_POINT
      )
    ) AS vari
  FROM
    BASE
),
STD_DEV AS(
  SELECT
    SQRT(SUM(vari) / count(*))
  FROM
    BASE2
),
BASE3 AS(
  SELECT
    USER_ID AS USER,
    POINT AS PT,
    ROUND(
      (
        CASE
          WHEN (
            SELECT
              *
            FROM
              STD_DEV
          ) = 0 THEN 50
          ELSE(
            (
              POINT - (
                SELECT
                  *
                FROM
                  AVG_POINT
              )
            ) * 10 / (
              SELECT
                *
              FROM
                STD_DEV
            ) + 50
          )
        END
      ),
      1
    ) AS DEV_VAL
  FROM
    BASE AS _
)
SELECT
  *
FROM
  BASE3
ORDER BY
  DEV_VAL DESC,
  USER
提出情報
提出日時2023/02/19 21:11:17
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者sisyou
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量76 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
76 MB
データパターン2
AC
75 MB
データパターン3
AC
76 MB
データパターン4
AC
76 MB