コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
SELECT
PO.PF_CODE AS 都道府県コード
, PF.PF_NAME AS 都道府県名
, PO.TOTAL_AMT AS 総人口2015年
, PO2020.TOTAL_AMT AS 総人口2020年
, ROUND(
-- 計算項目がINTEGER型なのでCAST関数でREAL型に変換して計算しています
CAST(PO2020.TOTAL_AMT AS REAL) / CAST(PO.TOTAL_AMT AS REAL) * 100
) AS 人口増加率
FROM
-- メインのクエリで、人口推移テーブルから2015年のデータを取得しています
POPU_TRANSITION AS PO
INNER JOIN PREFECTURE AS PF
ON PF.PF_CODE = PO.PF_CODE
-- 内部結合で同一テーブルの人口推移テーブルから、2020年のデータを取得しています
INNER JOIN POPU_TRANSITION AS PO2020
ON PO2020.PF_CODE = PO.PF_CODE
AND PO2020.SURVEY_YEAR = 2020
WHERE
PO.SURVEY_YEAR = 2015
AND PO2020.TOTAL_AMT >= PO.TOTAL_AMT
ORDER BY
人口増加率 DESC
, 都道府県コード ASC;
----------------------------------------------------------------------------------------------------------
SELECT
T.PF_CODE AS 都道府県コード
, P.PF_NAME AS 都道府県名
, T.総人口2015年
, T.総人口2020年
, T.人口増加率
FROM
(
SELECT
PF_CODE
, SUM( CASE SURVEY_YEAR WHEN 2015 THEN TOTAL_AMT ELSE 0 END ) AS 総人口2015年
, SUM( CASE SURVEY_YEAR WHEN 2020 THEN TOTAL_AMT ELSE 0 END ) AS 総人口2020年
, ROUND(
CAST( SUM( CASE SURVEY_YEAR WHEN 2020 THEN TOTAL_AMT ELSE 0 END ) AS REAL )
/
CAST( SUM( CASE SURVEY_YEAR WHEN 2015 THEN TOTAL_AMT ELSE 0 END ) AS REAL
) * 100
) AS 人口増加率
FROM
POPU_TRANSITION
WHERE
SURVEY_YEAR IN (2015, 2020)
GROUP BY
PF_CODE
) AS T
INNER JOIN PREFECTURE AS P
ON T.PF_CODE = P.PF_CODE
WHERE
T.総人口2015年 < T.総人口2020年
ORDER BY
人口増加率 DESC
, 都道府県コード;
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
79 MB
データパターン2
AC
77 MB