ソースコード
with log as (
select pf_code,
       nation_code,
       amt,
       rank() over (partition by pf_code order by AMT desc, nation_code) as r
from foreigner
where nation_code != '113'
)

select l.pf_code as '都道府県コード',
       pf_name as '都道府県名',
       max(case when r = 1 then nation_name else '' end) as '1位 国名',
       max(case when r = 1 then amt else 0 end) as '1位 人数',
       max(case when r = 2 then nation_name else '' end) as '2位 国名',
       max(case when r = 2 then amt else 0 end) as '2位 人数',
       max(case when r = 3 then nation_name else '' end) as '3位 国名',
       max(case when r = 3 then amt else 0 end) as '3位 人数',
       sum(amt) as '合計人数'
from log as l
left join nationality as n on l.nation_code = n.nation_code
left join prefecture as p on p.pf_code = l.pf_code
group by 1,2
order by 9 desc, 1
提出情報
提出日時2022/07/20 19:01:02
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者guiltydammy
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量99 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
99 MB
データパターン2
AC
90 MB