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