ソースコード
with target as (
    select
        f.pf_code as pf_code,
        p.pf_name as pf_name,
        n.nation_name as nation_name,
        f.amt as amt,
        rank() over (
            partition by
                f.pf_code
            order by
                amt desc,
                f.nation_code
        ) as rank
    from
        foreigner as f
        inner join
            nationality as n
            on n.nation_code = f.nation_code
        inner join
            prefecture as p
            on p.pf_code = f.pf_code
    where
        f.nation_code != "113"
)

select
    pf_code as "都道府県コード",
    pf_name as "都道府県名",
    max(case t.rank when 1 then nation_name end) as "1位 国名",
    max(case t.rank when 1 then amt end) as "1位 人数",
    max(case t.rank when 2 then nation_name end) as "2位 国名",
    max(case t.rank when 2 then amt end) as "2位 人数",
    max(case t.rank when 3 then nation_name end) as "3位 国名",
    max(case t.rank when 3 then amt end) as "3位 人数",
    sum(amt) as "合計人数"
from
    target as t
group by
    t.pf_code
order by
    "合計人数" desc,
    "都道府県コード" asc
提出情報
提出日時2022/07/21 11:05:30
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者satoooh
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量80 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
80 MB
データパターン2
AC
78 MB