ソースコード
SELECT
a.都道府県コード,
a.都道府県名,
MAX(CASE WHEN a.ランク = 1  THEN a.国名 ELSE 0 END) AS '1位 国名',
MAX(CASE WHEN a.ランク = 1  THEN a.人数 ELSE 0 END) AS '1位 人数',
MAX(CASE WHEN a.ランク = 2  THEN a.国名 ELSE 0 END) AS '2位 国名',
MAX(CASE WHEN a.ランク = 2  THEN a.人数 ELSE 0 END) AS '2位 人数',
MAX(CASE WHEN a.ランク = 3  THEN a.国名 ELSE 0 END) AS '3位 国名',
MAX(CASE WHEN a.ランク = 3  THEN a.人数 ELSE 0 END) AS '3位 人数',
SUM(a.人数) AS 合計人数
FROM
    (SELECT 
        f.PF_CODE AS 都道府県コード,
        p.PF_NAME AS 都道府県名,
        n.NATION_NAME AS 国名,
        f.AMT AS 人数,
        RANK() OVER(PARTITION BY p.PF_NAME ORDER BY f.AMT DESC,n.NATION_CODE) AS ランク
    FROM FOREIGNER f
    LEFT JOIN PREFECTURE p ON f.PF_CODE = p.PF_CODE
    LEFT JOIN NATIONALITY n ON n.NATION_CODE = f.NATION_CODE
    WHERE NOT f.NATION_CODE = '113') a
GROUP BY a.都道府県コード
ORDER BY 合計人数 DESC, a.都道府県コード ASC
提出情報
提出日時2023/07/25 17:19:33
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者korogu
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量81 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
79 MB
データパターン2
AC
81 MB