Retrieve rows grouped by hour with MySQL

2019-03-13 09:45发布

I have a table containing access logs. I want to know how many accesses to resource_id '123' occured in each hour in a 24 hour day.

My first thought for retrieving this info is just looping through each hour and querying the table in each loop with something like... and time like '$hour:%', given that the time field holds data in the format 15:47:55.

Is there a way I can group by the hours and retrieve each hour and the number of rows within each hour in a single query?

Database is MySQL, language is PHP.

2条回答
贼婆χ
2楼-- · 2019-03-13 09:54

You can use the function HOUR to get the hour out of the time. Then you should be able to group by that.

查看更多
淡お忘
3楼-- · 2019-03-13 09:58
SELECT HOUR(MyDatetimeColumn) AS h, COUNT(*)
FROM MyTable
GROUP BY h;
查看更多
登录 后发表回答