コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
SELECT RANK_AMT.都道府県コード, 都道府県名, RANK_AMT.'1位 国名', RANK_AMT.'1位 人数', RANK_AMT.'2位 国名', RANK_AMT.'2位 人数', RANK_AMT.'3位 国名', RANK_AMT.'3位 人数', 合計人数
FROM (
SELECT 都道府県コード, 都道府県名,
MAX(CASE WHEN AMT_RANK = 1 THEN 国名 ELSE NULL END) '1位 国名',
MAX(CASE WHEN AMT_RANK = 1 THEN 人数 ELSE NULL END) '1位 人数',
MAX(CASE WHEN AMT_RANK = 2 THEN 国名 ELSE NULL END) '2位 国名',
MAX(CASE WHEN AMT_RANK = 2 THEN 人数 ELSE NULL END) '2位 人数',
MAX(CASE WHEN AMT_RANK = 3 THEN 国名 ELSE NULL END) '3位 国名',
MAX(CASE WHEN AMT_RANK = 3 THEN 人数 ELSE NULL END) '3位 人数'
FROM (
SELECT
FOREIGNER.PF_CODE 都道府県コード,
PF_NAME 都道府県名,
NATION_NAME 国名,
AMT 人数,
RANK() OVER (
PARTITION BY FOREIGNER.PF_CODE
ORDER BY AMT DESC, FOREIGNER.NATION_CODE ASC
) AMT_RANK
FROM FOREIGNER
INNER JOIN PREFECTURE
ON FOREIGNER.PF_CODE = PREFECTURE.PF_CODE
INNER JOIN NATIONALITY
ON FOREIGNER.NATION_CODE = NATIONALITY.NATION_CODE
WHERE FOREIGNER.NATION_CODE != '113'
)
GROUP BY 都道府県コード
) RANK_AMT
INNER JOIN (
SELECT PF_CODE 都道府県コード, SUM(AMT) 合計人数 FROM FOREIGNER
WHERE NATION_CODE != '113'
GROUP BY PF_CODE
) SUM_AMT
ON RANK_AMT.都道府県コード = SUM_AMT.都道府県コード
ORDER BY 合計人数 DESC, RANK_AMT.都道府県コード ASC
提出情報
提出日時 | 2022/07/20 17:54:32 |
コンテスト | 第1回 SQLコンテスト |
問題 | 外国籍分布 |
受験者 | toshikish |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 104 MB |
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
102 MB
データパターン2
AC
104 MB