Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Promedio/media de horas

Estas en el tema de Promedio/media de horas en el foro de Mysql en Foros del Web. Buenas... es posible hacer un query para obtener una hora promedio de una lista de registro de horas? Bueno tengo un campo que es VARCHAR ...
  #1 (permalink)  
Antiguo 16/06/2010, 12:35
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Promedio/media de horas

Buenas... es posible hacer un query para obtener una hora promedio de una lista de registro de horas? Bueno tengo un campo que es VARCHAR que contiene registros con formato H:i:s (0-24 horas) ¿cómo lo obtendría? Tendría que cambiar el campo a TIME?...

Código:
SELECT sec_to_time(AVG(TIME_TO_SEC(hora))) AS promedio FROM contador
Vi esto en el manual... pero creo que me saca un promedio numérico... quisiera un horario en común, por ejemplo en mis registros tengo varios campos que bordean la 1:00:00 de la tarde... debería salirme un horario cercano. Espero em puedan ayudar!
__________________
Quitenme la vida pero no la bebida.
  #2 (permalink)  
Antiguo 16/06/2010, 16:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Promedio/media de horas

amigo lo podrias solucionar pasando tu campo a tipo numerico

lo almacenas sin puntos. cuando y podrias hacer la consulta
SELECT AVG(hora) AS promedio FROM contador

si tus registros estan entre el promedio de 130000 seria una de la tarde, por lo de 13:00:00 entonces podras hacer calculo con tus horas. como SUM MAX y otras...

saludos...
  #3 (permalink)  
Antiguo 16/06/2010, 16:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Promedio/media de horas

tambien hay otra solucion que me parece que te puede interesar mas


puedes almacenar tu FECHA en un campo TIME el cual los almacena en este formato HH:MM:SS

HH: hora
MM: minutos
SS: segundo

y puedes hacer tu consulta igual como un entero

SELECT AVG(hora) AS promedio FROM contador


saludos...
  #4 (permalink)  
Antiguo 16/06/2010, 17:41
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Promedio/media de horas

Hola, gracias por responder... el AVG me resulta 69891.019230769 ... esos son segundos? si lo convierto con el sec_to_time ... estaría llegando a lo mismo
__________________
Quitenme la vida pero no la bebida.
  #5 (permalink)  
Antiguo 17/06/2010, 15:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Promedio/media de horas

cesarpunk,
debes aclararnos algo más. ¿Quieres decir que si hay un mayor número de tiempos próximos a una hora determinada, salga esa hora? ¿Desde qué momento entiendes la proximidad a una o a otra? ¿qué usamos como referencia, horas exactas, medias horas, cuartos de hora?
Te pondré un ejemplo, si usas horas, pasada la media hora entre las 00:00:00, es decir, desde 00:30:01 estaría en la siguiente hora, es decir, dentro de la 01:00:00, que abarcaría hasta las 01:30:00, etc.
Para sacar eso tienes que precisar los puntos de corte y el rango que abarca. Una vez nos digas esos, creo que la conversión a segundos es obligada, luego dividimos obteniendo un número entero en la división por el número que corresponda al rango buscado, agrupamos por ese número entero y ordenamos descendente por ese número. Y luego convertiremos a hora. Hay otros problemas, como el comienzo y final, pero vamos paso por paso.
  #6 (permalink)  
Antiguo 19/06/2010, 02:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Promedio/media de horas

La otra opción, quizás mejor para solucionarlo es usar SELECT CASE WHEN... Así puedes usar tiempo y luego los resultados ponerlos como quieras, en tiempo o cadena de texto o numérico. Luego podrías sacar la cuenta de esas salidas y ordenar.

Etiquetas: horas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:05.