ソースコード

WITH tmp as (
	SELECT
		F.PF_CODE
		, P.PF_NAME
		, N.NATION_CODE
		, N.NATION_NAME
		, F.AMT
		, rank() over(partition by P.PF_CODE ORDER BY F.AMT desc, N.NATION_CODE) as rank_amt
	FROM FOREIGNER as F
		INNER JOIN PREFECTURE as P
			ON F.PF_CODE = P.PF_CODE
		INNER JOIN NATIONALITY as N
			ON F.NATION_CODE = N.NATION_CODE
	WHERE N.NATION_CODE <> '113'
	GROUP BY 1,2,3,4,5
)
SELECT
	t0.PF_CODE as '都道府県コード'
	, t0.PF_NAME as '都道府県名'
	, MAX(CASE when t0.rank_amt = 1 then t0.NATION_NAME end) as '1位 国名'
	, MAX(CASE when t0.rank_amt = 1 then t0.AMT end) as '1位 人数'
	, MAX(CASE when t0.rank_amt = 2 then t0.NATION_NAME end) as '2位 国名'
	, MAX(CASE when t0.rank_amt = 2 then t0.AMT end) as '2位 人数'
	, MAX(CASE when t0.rank_amt = 3 then t0.NATION_NAME end) as '3位 国名'
	, MAX(CASE when t0.rank_amt = 3 then t0.AMT end) as '3位 人数'
	, sum(t0.AMT) as '合計人数'
FROM tmp as t0
GROUP BY 1,2
ORDER BY 合計人数 desc, 都道府県コード
提出情報
提出日時2022/07/23 13:29:52
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者naichi51
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量83 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
83 MB
データパターン2
AC
81 MB