ソースコード
with base AS (
    SELECT
      fore.*
      , pref.PF_NAME
      , nati.NATION_NAME
      , RANK() OVER (PARTITION BY pref.PF_NAME ORDER BY fore.AMT DESC, fore.NATION_CODE) as rnk
    FROM
      FOREIGNER fore
      
      INNER JOIN PREFECTURE pref ON fore.PF_CODE = pref.PF_CODE
      INNER JOIN NATIONALITY nati ON fore.NATION_CODE = nati.NATION_CODE
      
    WHERE
      fore.NATION_CODE != 113
    )
SELECT
  PF_CODE AS 都道府県コード
  , PF_NAME AS 都道府県名
  , MAX(CASE WHEN rnk == 1 THEN NATION_NAME END) AS "1位 国名"
  , MAX(CASE WHEN rnk == 1 THEN AMT END) AS "1位 人数"
  , MAX(CASE WHEN rnk == 2 THEN NATION_NAME END) AS "2位 国名"
  , MAX(CASE WHEN rnk == 2 THEN AMT END) AS "2位 人数"
  , MAX(CASE WHEN rnk == 3 THEN NATION_NAME END) AS "3位 国名"
  , MAX(CASE WHEN rnk == 3 THEN AMT END) AS "3位 人数"
  , SUM(AMT) AS 合計人数
FROM
  base
GROUP BY
  PF_CODE
ORDER BY
  合計人数 DESC, 都道府県コード
    
    
提出情報
提出日時2022/07/20 22:37:57
コンテスト第1回 SQLコンテスト
問題外国籍分布
受験者curry_rice
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量102 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
53 MB
データパターン2
AC
102 MB