
09/08/2008, 02:01
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años Puntos: 300 | |
Respuesta: COntar registros prueba agrupando no por todo el campo hora, sino por la hora de ese campo hora. Pero antes debes comprobar que el campo es de tipo time. No veo los segundos y tal vez hayas almacenado con un tipo que no sea time. Si lo es, aceptará la función HOUR() y podrás utilizar esto:
SELECT HOUR (hora), COUNT(*) total_por_hora FROM tabla GROUP BY HOUR (hora) ORDER BY HOUR (hora)
Si lo tienes almacenado como alguno de los tipos que almacenan cadenas de texto (varchar, etc.), sería, en mi opinión, un error de planteamiento, pero para hacer lo que quieres podrías utilizar LEFT() o SUBSTRING() . Pero para añadir los parámetros a esa funciones tendríamos que saber cómo almacenas las horas de 1 a 9, si como 01:00 o como 1:00. Si fuera 01:00, te bastaría con poner
SELECT LEFT (hora,2), COUNT(*) total_por_hora FROM tabla GROUP BY LEFT (hora,2) ORDER BY LEFT (hora,2).Habría alguna otra posibilidad. No obstante, yo te aconsejaría ver si se trata de un campo tipo time. Y si no es así, estudiar la posibilidad de su conversión para hacerlo más útil y las operaciones más rápidas. Por supuesto, no intentes el cambio de tipo sin más. Tendrías que añadir segundos en ese campo antes de hacer el cambio a los registros almacenados y modificar la programación que alimenta el campo para que añadiera también segundos.
Última edición por jurena; 09/08/2008 a las 05:21 |