ソースコード
WITH DEF AS(
    WITH ABC AS(
        SELECT
            *
        FROM
            FOREIGNER AS FR
        JOIN
            NATIONALITY AS NA ON (FR.NATION_CODE = NA.NATION_CODE)
        JOIN
            PREFECTURE AS PR ON (FR.PF_CODE = PR.PF_CODE)
        WHERE
            FR.NATION_CODE <> '113'
        ORDER BY
            FR.PF_CODE ASC
            ,AMT DESC
    )
    SELECT
        PF_CODE AS "都道府県コード"
        ,PF_NAME AS "都道府県名"
        ,ROW_NUMBER() OVER (PARTITION BY PF_NAME) AS "RANKING"
        ,NATION_NAME
        ,AMT
    FROM
        ABC
)
SELECT
    "都道府県コード"
    ,"都道府県名"
    ,MAX(CASE RANKING WHEN 1 THEN "NATION_NAME" ELSE NULL END) AS "1位 国名"
    ,MAX(CASE RANKING WHEN 1 THEN "AMT" ELSE 0 END) AS "1位 人数"
    ,MAX(CASE RANKING WHEN 2 THEN "NATION_NAME" ELSE NULL END) AS "2位 国名"
    ,MAX(CASE RANKING WHEN 2 THEN "AMT" ELSE 0 END) AS "2位 人数"
    ,MAX(CASE RANKING WHEN 3 THEN "NATION_NAME" ELSE NULL END) AS "3位 国名"
    ,MAX(CASE RANKING WHEN 3 THEN "AMT" ELSE 0 END) AS "3位 人数"
    ,SUM(AMT) AS "合計人数"
FROM
    DEF
GROUP BY
    "都道府県名"
ORDER BY
    "合計人数" DESC
    ,"都道府県コード" ASC
;
提出情報
提出日時2023/10/13 21:24:28
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者riverson
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量82 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
80 MB
データパターン2
AC
82 MB