假设我在MySQL数据库中有一个表,其中包含以下模式。
+-----------+--------+
| timestamp | string |
+-----------+--------+
在这张表中,每个月都有很多条目。
现在我想计算表格中每天早上6点到早上10点之间的条目,并按照这个时间段对它们进行分组。
响应应该是这样的
+------+------------------------------+
| date | count in the given timeframe |
+------+------------------------------+
我的问题是如何选择重复的时间范围。我知道如何计算条目以及如何对它们进行分组。
我成功地在intervall上做到了这一点。但是每天的intervall都不一样。
SELECT count(timestamp) as count,
ROUND(UNIX_TIMESTAMP(timestamp)/(60 * 60 * ", hours, ")) AS timekey
FROM event_data,
GROUP BY timekey
答案 0 :(得分:2)
假设您正在使用MySQL,可以使用以下查询:
SELECT
date(timestamp1) AS entrydate
, COUNT(*) FROM mytable
WHERE
EXTRACT(HOUR FROM TIME(timestamp1)) BETWEEN 6 AND 10
GROUP BY
entrydate
其中
并且,请在下次提供一些示例条目,并尝试稍微具体一点。
答案 1 :(得分:1)
psuedo code
就像
select timestamp ,
sum(case when hours of timestamp between 6am and 10am then 1 else 0 end) timeframe_count
from yourtable
group by timestamp