ソースコード
select 
    tmp.PF_CODE as "都道府県コード",
    p.PF_NAME as "都道府県名",
    max(case when rank = 1 then n.NATION_NAME else 0 end) as "1位 国名",
    max(case when rank = 1 then tmp.AMT else 0 end) as "1位 人数",
    max(case when rank = 2 then n.NATION_NAME else 0 end) as "2位 国名",
    max(case when rank = 2 then tmp.AMT else 0 end) as "2位 人数",
    max(case when rank = 3 then n.NATION_NAME else 0 end) as "3位 国名",
    max(case when rank = 3 then tmp.AMT else 0 end) as "3位 人数",
    sum(AMT) as "合計人数"
from
(
    select 
        PF_CODE,
        NATION_CODE,
        AMT,
        rank() over (partition by PF_CODE order by AMT desc, NATION_CODE asc) as rank
    from FOREIGNER
    where NATION_CODE <> '113'
) as tmp
    inner join PREFECTURE as p
        on tmp.PF_CODE = p.PF_CODE
    inner join NATIONALITY as n
        on tmp.NATION_CODE = n.NATION_CODE
group by tmp.PF_CODE
order by 
    "合計人数" desc,
    tmp.PF_CODE asc
;
提出情報
提出日時2024/01/02 22:30:49
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者shibainu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量88 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
88 MB
データパターン2
AC
85 MB