列message_internaldateを含むテーブルメッセージがあります。ここで、数か月にわたって特定の期間 (1 日の各時間) 内のメッセージをカウントしたいと考えています。多くのサブクエリ (24) を使用することで、1 時間あたりのメッセージの合計を取得することができましたが、それを行うためのより賢明な方法があることを願っています。期間が異なることを除いて、サブクエリは似ています。助言がありますか?
例: 最初の 2 時間
SELECT T1, T2 FROM
(
SELECT sum(T1c) as T1 FROM
(
SELECT strftime('%H:%M',message_internaldate) AS T1s ,count(*) as T1c FROM messages WHERE
message_internaldate BETWEEN '2005-01-01 00:00:00' AND '2012-12-31 00:00:00'
AND strftime('%H:%M',message_internaldate) BETWEEN '01:00'AND '01:59'
GROUP BY strftime('%H:%M',message_internaldate)
)
)
,
(
SELECT sum(T2c) as T2 FROM
(
SELECT strftime('%H:%M',message_internaldate) AS T2s ,count(*) as T2c FROM messages WHERE
message_internaldate BETWEEN '2005-01-01 00:00:00' AND '2012-12-31 00:00:00'
AND strftime('%H:%M',message_internaldate) BETWEEN '02:00'AND '02:59'
GROUP BY strftime('%H:%M',message_internaldate)
)
)
...