ソースコード
with prank as(
select 
PF_CODE,
NATION_NAME,
AMT,
rank() over(partition by PF_CODE order by AMT desc, FOREIGNER.NATION_CODE) as r
from FOREIGNER 
left join NATIONALITY on FOREIGNER.NATION_CODE = NATIONALITY.NATION_CODE
where FOREIGNER.NATION_CODE != 113
)
select 
pr.PF_CODE as "都道府県コード",
p.PF_NAME as "都道府県名",
max(case when pr.r = 1 then NATION_NAME else null end) as "1位 国名",
max(case when pr.r = 1 then AMT else 0 end) as "1位 人数",
max(case when pr.r = 2 then NATION_NAME else null end) as "2位 国名",
max(case when pr.r = 2 then AMT else 0 end) as "2位 人数",
max(case when pr.r = 3 then NATION_NAME else null end) as "3位 国名",
max(case when pr.r = 3 then AMT else 0 end) as "3位 人数",
sum(AMT) as "合計人数"
from prank pr
left join PREFECTURE p on pr.PF_CODE = p.PF_CODE
group by 1,2
order by "合計人数" desc, 1
提出情報
提出日時2024/07/03 23:32:50
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者nagisa5101
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量89 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
89 MB
データパターン2
AC
85 MB