ソースコード
with
foreigner_rank as(
select
    f.PF_CODE
    , p.PF_NAME
    , n.NATION_NAME
    , AMT
    , rank()over(
    partition by f.PF_CODE
    order by AMT desc, f.NATION_CODE) as rank
from
    FOREIGNER as f
    join
        PREFECTURE as p
    on
        f.PF_CODE = p.PF_CODE
    join
        NATIONALITY as n
    on
        f.NATION_CODE = n.NATION_CODE
where
    f.NATION_CODE != '113'
)
select
      PF_CODE as 都道府県コード
    , PF_NAME as 都道府県名
    , max(case rank when 1 then NATION_NAME else null end) as '1位 国名'
    , max(case rank when 1 then AMT else 0 end) as '1位 人数'
    , max(case rank when 2 then NATION_NAME else null end) as '2位 国名'
    , max(case rank when 2 then AMT else 0 end) as '2位 人数'
    , max(case rank when 3 then NATION_NAME else null end) as '3位 国名'
    , max(case rank when 3 then AMT else 0 end) as '3位 人数'
    , sum(AMT) as 合計人数
from
    foreigner_rank
group by
    都道府県コード, 都道府県名
order by
    合計人数 desc, 都道府県コード asc;
提出情報
提出日時2022/12/28 13:33:44
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者2takumax
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量84 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
84 MB
データパターン2
AC
77 MB