コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
WITH TOTAL AS
(
SELECT
F.PF_CODE AS 都道府県コード
, P.PF_NAME AS 都道府県名
, N.NATION_NAME AS 国名
, SUM(F.AMT) AS 合計人数
, RANK() OVER(PARTITION BY F.PF_CODE ORDER BY SUM(F.AMT) DESC, F.NATION_CODE ASC) AS 順位
FROM
FOREIGNER F
INNER JOIN PREFECTURE P
ON F.PF_CODE = P.PF_CODE
INNER JOIN NATIONALITY N
ON F.NATION_CODE = N.NATION_CODE
WHERE
--国籍コード= '113'(その他)のデータは除いて集計すること
F.NATION_CODE <> '113'
GROUP BY
F.PF_CODE
, P.PF_NAME
, N.NATION_NAME
)
SELECT
T.都道府県コード
, T.都道府県名
, (SELECT 国名 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 1) AS "1位 国名"
, (SELECT 合計人数 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 1) AS "1位 人数"
, (SELECT 国名 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 2) AS "2位 国名"
, (SELECT 合計人数 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 2) AS "2位 人数"
, (SELECT 国名 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 3) AS "3位 国名"
, (SELECT 合計人数 FROM TOTAL WHERE TOTAL.都道府県コード = T.都道府県コード AND 順位 = 3) AS "3位 人数"
, SUM(合計人数) AS "合計人数"
FROM
TOTAL T
GROUP BY
T.都道府県コード
, T.都道府県名
ORDER BY
合計人数 DESC
, T.都道府県コード ASC
提出情報
提出日時 | 2022/07/20 19:29:14 |
コンテスト | 第1回 SQLコンテスト |
問題 | 外国籍分布 |
受験者 | zakk3456 |
状態 (詳細) | AC (Accepted: 正答) |
メモリ使用量 | 102 MB |
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
102 MB
データパターン2
AC
96 MB