ソースコード
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
    , 都道府県コード;
提出情報
提出日時2022/11/11 12:08:35
コンテスト練習用コンテスト
問題人口増加率分析
受験者sqlbcamp
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量79 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
79 MB
データパターン2
AC
77 MB