コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
-- 中央値(median): データを大きい順に並べた時の中央の値
-- (データの件数が偶数の場合は、中央の2つの値の平均値)
WITH t1 AS (
SELECT
TOTAL_VALUE
-- データを昇順に並べ、1から番号をつける
, ROW_NUMBER() OVER(
ORDER BY
TOTAL_VALUE ASC
) AS ORDER_NUM
-- データの個数
, COUNT(*) OVER() AS TOTAL_DATA_NUM -- OVER句内の指定がないので全行が対象となり、全行に対して結果がつく
FROM
CONVENIENCE
WHERE
SURVEY_YEAR = 2019
AND
KIND_CODE = '100' -- 販売額
)
SELECT
CASE WHEN TOTAL_DATA_NUM % 2 == 1 -- 奇数個: 中央の値
THEN
TOTAL_VALUE
ELSE
ROUND(AVG(TOTAL_VALUE))
END
AS SA_MEDIAN
FROM
t1
WHERE
CASE WHEN TOTAL_DATA_NUM % 2 == 1 -- 奇数個: 中央の値
THEN
ORDER_NUM = (TOTAL_DATA_NUM / 2) + 1
ELSE -- 偶数個: 中央の2つの値
ORDER_NUM IN (
TOTAL_DATA_NUM / 2
, (TOTAL_DATA_NUM / 2) + 1
)
END
;
提出情報
提出日時 | 2024/01/10 11:45:32 |
コンテスト | 第4回 SQLコンテスト |
問題 | 中央値の算出 |
受験者 | maori |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 85 MB |
メッセージ
テストケース(通過数/総数)
3/3
状態
メモリ使用量
データパターン1
AC
83 MB
データパターン2
AC
84 MB
データパターン3
AC
85 MB