ソースコード
-- 年齢層睡眠時間毎に人数を集計した睡眠時間詳細データを、年齢層を縦軸、睡眠時間を横軸にした表形式で表示しなさい。
-- 睡眠時間詳細データは年齢コードと時間コードの組合せに歯抜けは無いものとする、また、対象人数の単位は千人となっている。

-- 表示項目は以下とする。(エイリアスを使用し→の項目名とする)

-- AGE_NAME → 年齢階層
-- 年齢層毎に集計した、TIME_CODE = 120の人数 → 5時間未満
-- 年齢層毎に集計した、TIME_CODE = 130の人数 → 5時間以上6時間未満
-- 年齢層毎に集計した、TIME_CODE = 140の人数 → 6時間以上7時間未満
-- 年齢層毎に集計した、TIME_CODE = 150の人数 → 7時間以上8時間未満
-- 年齢層毎に集計した、TIME_CODE = 160の人数 → 8時間以上9時間未満
-- 年齢層毎に集計した、TIME_CODE = 170の人数 → 9時間以上
-- 年齢層毎に集計した、TIME_CODE = 180の人数 → 不詳
-- 表示順

-- 年齢コードの昇順

SELECT
    AGE_NAME AS "年齢階層"
    , SUM(CASE WHEN TIME_CODE = 120 THEN TARGET_POP ELSE 0 END) AS "5時間未満"
    , SUM(CASE WHEN TIME_CODE = 130 THEN TARGET_POP ELSE 0 END) AS "5時間以上6時間未満"
    , SUM(CASE WHEN TIME_CODE = 140 THEN TARGET_POP ELSE 0 END) AS "6時間以上7時間未満"
    , SUM(CASE WHEN TIME_CODE = 150 THEN TARGET_POP ELSE 0 END) AS "7時間以上8時間未満"
    , SUM(CASE WHEN TIME_CODE = 160 THEN TARGET_POP ELSE 0 END) AS "8時間以上9時間未満"
    , SUM(CASE WHEN TIME_CODE = 170 THEN TARGET_POP ELSE 0 END) AS "9時間以上"
    , SUM(CASE WHEN TIME_CODE = 180 THEN TARGET_POP ELSE 0 END) AS "不詳"

FROM
    SLEEP_TIME_DTL

LEFT JOIN
    AGE_GRP
USING (AGE_CODE)

LEFT JOIN
    SLEEP_TIME
USING (TIME_CODE)

GROUP BY
    AGE_NAME

ORDER BY
    AGE_CODE ASC
提出情報
提出日時2023/01/06 16:28:43
コンテスト練習用コンテスト
問題年齢別睡眠時間分析
受験者res1235
状態 (詳細)AC
(Accepted: 正答)
メモリ使用量83 MB
メッセージ
テストケース(通過数/総数)
2/2
状態
メモリ使用量
データパターン1
AC
83 MB
データパターン2
AC
80 MB