ソースコード
with t as (select * from FOREIGNER
left join NATIONALITY using (NATION_CODE)
left join PREFECTURE using (PF_CODE)
where NATION_NAME != "その他"),
t1 as (select t.*, rank() over(partition by PF_CODE order by AMT desc, NATION_CODE asc) as rank
from t
)
-- select * from t1
select "都道府県コード","都道府県名","1位 国名","1位 人数","2位 国名","2位 人数","3位 国名","3位 人数","合計人数"
from (select PF_CODE as "都道府県コード", PF_NAME as "都道府県名", sum(AMT) as "合計人数" from t group by PF_CODE, PF_NAME)
left join (select PF_CODE as "都道府県コード", PF_NAME as "都道府県名", NATION_NAME as "1位 国名", AMT as "1位 人数" from t1 where rank = 1) using ("都道府県コード", "都道府県名")
left join (select PF_CODE as "都道府県コード", PF_NAME as "都道府県名", NATION_NAME as "2位 国名", AMT as "2位 人数" from t1 where rank = 2) using ("都道府県コード", "都道府県名")
left join (select PF_CODE as "都道府県コード", PF_NAME as "都道府県名", NATION_NAME as "3位 国名", AMT as "3位 人数" from t1 where rank = 3) using ("都道府県コード", "都道府県名")
order by "合計人数" desc, "都道府県コード" asc
提出情報
提出日時2022/07/20 20:43:12
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者Tomii9273
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量101 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
101 MB
データパターン2
AC
97 MB