次の表があるとします。
time_recorded | room | num_occupied
----------------------------------------------
2012-11-05 00:00:00 a 10
2012-11-05 00:00:00 b 20
2012-11-05 00:00:00 c 30
2012-11-05 00:00:00 d 40
2012-11-05 00:30:00 a 100
2012-11-05 00:30:00 b 200
2012-11-05 00:30:00 c 300
2012-11-05 00:30:00 d 400
...
room ='b'および'c'の場合、行をグループ化する必要があります。これにより、結果の出力は次のようになります。
time_recorded | room | num_occupied
----------------------------------------------
2012-11-05 00:00:00 a 10
2012-11-05 00:00:00 bc (20+30)
2012-11-05 00:00:00 d 40
2012-11-05 00:30:00 a 100
2012-11-05 00:30:00 bc (200+300)
2012-11-05 00:30:00 d 400
...
私はjuergendによって提案された次のクエリを試しました:
SELECT
*
FROM
usage
WHERE
DATE(time_recorded) = '2012-11-05'
GROUP BY CASE WHEN room IN ('b', 'c') THEN 'bc' ELSE room END;
何らかの理由で、次の結果が返されます。
time_recorded | room | num_occupied
----------------------------------------------
2012-11-05 00:00:00 a 10
2012-11-05 00:00:00 b 20
私は何が間違っているのですか?
前もって感謝します!