views:

497

answers:

2

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  A: 

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

HTH, flokra

flokra
+4  A: 
SELECT HOUR(MyDatetimeColumn) AS h, COUNT(*)
FROM MyTable
GROUP BY h;
Bill Karwin
thanks, perfect!
Ian