ソースコード
select T3.USER
, T3.PT
, case when T3.STDEV = 0 then 50
       else round( (((T3.b) * 10)/T3.STDEV) + 50, 1)
 end
    DEV_VAL
from (
    select T2.USER_ID USER
    , T2.POINT PT
    , T2.b, T2.c
    , avg(T2.c) over() d -- 分散(二乗の平均)
    , case when sqrt(avg(T2.c) over()) = 0  then 50
           else sqrt(avg(T2.c) over())
      end
      STDEV -- 標準偏差(分散の平方根)
    from (
        select T.USER_ID
        , T.POINT
        , avg(T.POINT) over() a -- 平均
        , T.POINT - (avg(T.POINT) over()) b -- 点数と平均の差
        , power(T.POINT - (avg(T.POINT) over()),2) c -- の二乗
        from TEST_RESULTS T
        where T.TEST_ID = '100'
        ) T2
    ) T3
order by 
case when T3.STDEV = 0 then 50
       else round( (((T3.b) * 10)/T3.STDEV) + 50, 1)
 end desc
, T3.USER
提出情報
提出日時2023/02/20 09:48:43
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者kiharu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量82 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
82 MB
データパターン2
AC
79 MB
データパターン3
AC
79 MB
データパターン4
AC
82 MB