Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/09/2010, 15:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Agrupar por hora columna de fecha hora

La idea sería:
Tabla:
Código MySQL:
Ver original
  1. CREATE TABLE TABLA(
  2.    FECHA_HORA DATETIME,
  3.    `STATUS` INT UNSIGNED);

Datos (tomados de tu muestra, por lo que hubo que usar STR_TO_DATE() para convertirlos en DATETIME):
Código MySQL:
Ver original
  1. INSERT INTO TABLA
  2. (STR_TO_DATE('27/08/2010 00:00', '%d/%m/%Y %H:%i'), 1),
  3. (STR_TO_DATE('27/08/2010 00:04', '%d/%m/%Y %H:%i'), 0),
  4. (STR_TO_DATE('27/08/2010 00:59', '%d/%m/%Y %H:%i'), 1),
  5. (STR_TO_DATE('27/08/2010 01:01', '%d/%m/%Y %H:%i'), 1),
  6. (STR_TO_DATE('27/08/2010 01:02', '%d/%m/%Y %H:%i'), 0),
  7. (STR_TO_DATE('27/08/2010 01:06', '%d/%m/%Y %H:%i'), 0),
  8. (STR_TO_DATE('27/08/2010 01:07', '%d/%m/%Y %H:%i'), 1),
  9. (STR_TO_DATE('27/08/2010 01:15', '%d/%m/%Y %H:%i'), 0),
  10. (STR_TO_DATE('27/08/2010 02:02', '%d/%m/%Y %H:%i'), 1),
  11. (STR_TO_DATE('27/08/2010 02:03', '%d/%m/%Y %H:%i'), 1),
  12. (STR_TO_DATE('27/08/2010 02:54', '%d/%m/%Y %H:%i'), 1),
  13. (STR_TO_DATE('27/08/2010 02:59', '%d/%m/%Y %H:%i'), 0),
  14. (STR_TO_DATE('27/08/2010 03:11', '%d/%m/%Y %H:%i'), 1),
  15. (STR_TO_DATE('27/08/2010 03:13', '%d/%m/%Y %H:%i'), 1);

Consulta:
Código MySQL:
Ver original
  1.    DATE(FECHA_HORA) DIA,
  2.    HOUR(FECHA_HORA) HORA,
  3.    COUNT(*) SUMA,
  4.    SUM(`STATUS`) `STATUS`
  5. FROM TABLA
  6. GROUP BY HOUR(FECHA_HORA);

Resultado:
Código MySQL:
Ver original
  1. +------------+------+------+--------+
  2. | DIA        | HORA | SUMA | STATUS |
  3. +------------+------+------+--------+
  4. | 2010-08-27 |    0 |    3 |      2 |
  5. | 2010-08-27 |    1 |    5 |      2 |
  6. | 2010-08-27 |    2 |    4 |      3 |
  7. | 2010-08-27 |    3 |    2 |      2 |
  8. +------------+------+------+--------+
  9. 4 rows in set (0.00 sec)

Obviamente puede haber variaciones en cuanto a funciones de conversión de caracteres a DATETIME de acuerdo al DBMS que uses; este ejemplo fue desarrollado en MySQL. Oracle y SQL Server, por ejemplo, usan otras funciones distintas a STR_TO_DATE().

Consulta el manual de tu DBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)