mysql每小时的行数

时间:2010-09-21 15:47:51

标签: mysql

我有一个表,每行都有一个时间戳。是否有可以运行的查询可以计算每小时的行数。使用包含行数的字段为每小时输出一行?

例如

id timestamp

10 2010-09-19 21:05:05

11 2010-09-19 22:05:30

12 2010-09-19 23:05:05

13 2010-09-19 23:05:05

number of rows | hour
1                21
1                22
2                23

我想使用小时可能会出现问题,因为会有重复的小时...所以也许'2010-09-19 21'或只是代表期间的数字(例如在2010-09-19中的例子)是1)

TIA

2 个答案:

答案 0 :(得分:21)

这取决于您的日期范围有多大。如果所有日期都在一个月内,例如,您可以这样做:

select day(timestamp) as Day, hour(timestamp) as Hour, count(*) as Count
from MyTable
where timestamp between :date1 and :date2
group by day(timestamp), hour(timestamp)

如果您需要进一步分离数据,也可以按年份和月份进行分组。

答案 1 :(得分:2)

SELECT HOUR(hour) as hour, COUNT(*) as num_rows FROM `TABLE` GROUP BY HOUR(hour)
相关问题