ソースコード
select
    ag.AGE_NAME as 年齢階層,
    MAX(CASE WHEN st.TIME_CODE = 120 THEN std.TARGET_POP ELSE 0 END) AS "5時間未満",
    MAX(CASE WHEN st.TIME_CODE = 130 THEN std.TARGET_POP ELSE 0 END) AS "5時間以上6時間未満",
    MAX(CASE WHEN st.TIME_CODE = 140 THEN std.TARGET_POP ELSE 0 END) AS "6時間以上7時間未満",
    MAX(CASE WHEN st.TIME_CODE = 150 THEN std.TARGET_POP ELSE 0 END) AS "7時間以上8時間未満",
    MAX(CASE WHEN st.TIME_CODE = 160 THEN std.TARGET_POP ELSE 0 END) AS "8時間以上9時間未満",
    MAX(CASE WHEN st.TIME_CODE = 170 THEN std.TARGET_POP ELSE 0 END) AS "9時間以上",
    MAX(CASE WHEN st.TIME_CODE = 180 THEN std.TARGET_POP ELSE 0 END) AS 不詳
from
    SLEEP_TIME_DTL as std
left join
    SLEEP_TIME as st
on
    std.TIME_CODE = st.TIME_CODE
left join
    AGE_GRP as ag
on
    std.AGE_CODE = ag.AGE_CODE
group by
    ag.AGE_NAME   
;

-- SELECT 
--     AGE_GRP.AGE_NAME AS 年齢階層,
--     -- CASE句を用いて時間コードの値で場合分けし、対象人数を対応するカラムに振分けます
--     -- 最後に、年齢コードでグルーピングを行い、振分けた値をサマリして表示します
--     -- 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
-- INNER JOIN AGE_GRP ON AGE_GRP.AGE_CODE = SLEEP_TIME_DTL.AGE_CODE
-- GROUP BY AGE_GRP.AGE_CODE
-- ORDER BY AGE_GRP.AGE_CODE;
提出情報
提出日時2022/07/11 12:33:00
コンテスト練習用コンテスト
問題年齢別睡眠時間分析
受験者1989
状態 (詳細)WA
(Wrong Answer: 誤答)
メモリ使用量80 MB
メッセージ
テストケース(通過数/総数)
0/2
状態
メモリ使用量
データパターン1
WA
80 MB
データパターン2
WA
78 MB