ソースコード
WITH basedata AS (
	SELECT
		USER_ID
		,POINT
	FROM TEST_RESULTS
	WHERE TEST_ID = '100'
)
,heikinscore AS (
	SELECT AVG(POINT) AS avgpt
	FROM basedata
)
,jijo AS (
	SELECT
		USER_ID
		,(POINT - avgpt)*(POINT - avgpt) AS jijo
	FROM basedata
	CROSS JOIN heikinscore
)
,DEVIATION AS (
	SELECT SQRT(bunavg) AS stdev
	FROM(
		SELECT AVG(jijo) AS bunavg
		FROM jijo
	)
)
SELECT
	t1.USER_ID AS USER
	,t1.POINT AS PT
	,CASE
		WHEN t2.stdev <> 0 THEN ROUND(((t1.POINT - t3.avgpt) * 10)/t2.stdev,1) + 50
		ELSE 50
	END AS DEV_VAL
FROM TEST_RESULTS AS t1
CROSS JOIN DEVIATION AS t2
CROSS JOIN heikinscore AS t3
WHERE t1.TEST_ID = '100'
ORDER BY DEV_VAL DESC ,USER ASC
提出情報
提出日時2023/02/20 21:15:55
コンテスト第5回 SQLコンテスト
問題偏差値の算出
受験者katsu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量80 MB
メッセージ
テストケース(通過数/総数)
4/4
状態
メモリ使用量
データパターン1
AC
77 MB
データパターン2
AC
77 MB
データパターン3
AC
80 MB
データパターン4
AC
76 MB