2009-09-21 27 views
12

Tengo una tabla que contiene registros de acceso. Quiero saber cuántos accesos a resource_id '123' ocurrieron en cada hora en un día de 24 horas.Recuperar filas agrupadas por hora con MySQL

Mi primer pensamiento para recuperar esta información es sólo un bucle a través de cada hora y consultar la tabla en cada bucle con algo como ... and time like '$hour:%', dado que el campo time posee los datos en el formato 15:47:55.

¿Hay alguna manera de que pueda group by las horas y recuperar cada hora y el número de filas dentro de cada hora en una sola consulta?

La base de datos es MySQL, el lenguaje es PHP.

+0

es la columna 'hora' en formato de fecha y hora? – Zenshai

+0

Por favor, publique la estructura de la base de datos: ¿tiene un 'DATETIME' para el tiempo de acceso? – Josh

+0

@Zenshai me has superado por 41 segundos :-) – Josh

Respuesta

34
SELECT HOUR(MyDatetimeColumn) AS h, COUNT(*) 
FROM MyTable 
GROUP BY h; 
3

Puede usar la función HOUR para obtener la hora del tiempo. Entonces deberías poder agrupar por eso.

Cuestiones relacionadas