ソースコード
WITH ranking AS(
    SELECT
        F.PF_CODE,
        P.PF_NAME,
        N.NATION_NAME,
        F.AMT,
        RANK() OVER (PARTITION BY F.PF_CODE ORDER BY F.AMT DESC,F.NATION_CODE) AS columnrank
    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'
)
SELECT
    R.PF_CODE AS "都道府県コード",
    R.PF_NAME AS "都道府県名",
    MAX(CASE R.columnrank WHEN 1 THEN NATION_NAME ELSE NULL END ) AS "1位 国名",
    MAX(CASE R.columnrank WHEN 1 THEN AMT ELSE 0 END) AS "1位 人数",
    MAX(CASE R.columnrank WHEN 2 THEN NATION_NAME ELSE NULL END ) AS "2位 国名",
    MAX(CASE R.columnrank WHEN 2 THEN AMT ELSE 0 END) AS "2位 人数",
    MAX(CASE R.columnrank WHEN 3 THEN NATION_NAME ELSE NULL END ) AS "3位 国名",
    MAX(CASE R.columnrank WHEN 3 THEN AMT ELSE 0 END) AS "3位 人数",
    SUM(AMT) AS "合計人数"
FROM
    ranking AS R
GROUP BY
    R.PF_CODE,R.PF_NAME
ORDER BY
    "合計人数" DESC,
    "都道府県コード" ASC
;
提出情報
提出日時2023/07/13 11:26:11
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者roborobo
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量85 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
AC
78 MB