次の表を検討してください。
msg_id _time
-------------
1 13:32
2 13:56
3 14:05
4 15:00
5 15:17
6 15:28
7 16:40
現在、次のように、1 時間あたりのメッセージ数を集計しています。
SELECT HOUR(_time) AS hour, COUNT(msg_id) AS cnt FROM messages GROUP BY hour
ORDER BY hour
これにより、結果セットは次のようになります。
hour cnt
---------
13 2
14 1
15 3
16 1
ただし、私が欲しいのは、30分あたりのカウントです。
hour cnt
----------
13:30 2
14:00 1
14:30 0
15:00 3
15:30 0
16:00 0
16:30 1
これを可能にするクエリは何ですか? 必要に応じて、30 分の時刻 (00:00、00:30、01:00、01:30、... 23:00、23:30) を含むテーブルを作成できると思いますが、あまり好みません。(そして、そのテーブルの使い方もまだわかりません)。
どんな助けでも大歓迎です:-)