コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
with
--都道府県ごとの順位
--国籍その他除外
rank_t as (
select PF_CODE,
NATION_CODE,
AMT,
row_number() over(partition by PF_CODE order by AMT desc,NATION_CODE asc) as "順位"
from FOREIGNER
where NATION_CODE <> '113'
),
--国籍その他を除外した合計
sum_t as (
select PF_CODE,
SUM(AMT) as "合計人数"
from FOREIGNER
where NATION_CODE <> '113'
group by PF_CODE
),
--都道府県ごとの上位3位と合計人数
top_3 as (
select PF_CODE,
NATION_CODE,
AMT,
"順位",
"合計人数"
from rank_t inner join sum_t
using(PF_CODE)
where "順位" in (1,2,3)
)
select PF_CODE as "都道府県コード",
PF_NAME as "都道府県名",
MAX(case "順位" when 1 then NATION_NAME else NULL end) as "1位 国名",
MAX(case "順位" when 1 then AMT else 0 end) as "1位 人数",
MAX(case "順位" when 2 then NATION_NAME else NULL end) as "2位 国名",
MAX(case "順位" when 2 then AMT else 0 end) as "2位 人数",
MAX(case "順位" when 3 then NATION_NAME else NULL end) as "3位 国名",
MAX(case "順位" when 3 then AMT else 0 end) as "3位 人数",
"合計人数"
from top_3
inner join PREFECTURE
using(PF_CODE)
inner join NATIONALITY
using(NATION_CODE)
group by "PF_CODE","PF_NAME"
order by "合計人数" desc, "都道府県コード" asc
;
提出情報
提出日時 | 2022/12/02 00:03:15 |
コンテスト | 第1回 SQLコンテスト |
問題 | 外国籍分布 |
受験者 | keisuke_nakata |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 80 MB |
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
80 MB
データパターン2
AC
80 MB