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

Sacar el Maximo de varios promedios MYSQL

Estas en el tema de Sacar el Maximo de varios promedios MYSQL en el foro de Mysql en Foros del Web. pues veran tengo una tabla donde guardo el tiempo que se demora en realizarse una actividad, obvio esto clasificado por tiendas... ahora cuando pido un ...
  #1 (permalink)  
Antiguo 21/11/2012, 14:44
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Sacar el Maximo de varios promedios MYSQL

pues veran tengo una tabla donde guardo el tiempo que se demora en realizarse una actividad, obvio esto clasificado por tiendas...

ahora cuando pido un promedio de dichos tiempos por tienda, todo me resulta bien.

Código MySQL:
Ver original
  1. SELECT (SEC_TO_TIME(AVG(TIME_TO_SEC(`tiempo_ent`)))) as tiempotD, `id_franquicia` as Franq FROM for_tie_proc WHERE DATE_FORMAT(fec_med, '%m')=11 GROUP BY `id_franquicia`

ahora de esos promedios resultantes, debo de sacar el MIN, MAX y Promedio nuevamente....

pero cuando uso el MAX obtengo el error:

Código MySQL:
Ver original
  1. SELECT MAX(SEC_TO_TIME(AVG(TIME_TO_SEC(`tiempo_ent`)))) as tiempotD, `id_franquicia` as Franq FROM for_tie_proc WHERE DATE_FORMAT(fec_med, '%m')=11 GROUP BY `id_franquicia`

Código MySQL:
Ver original
  1. #1111 - Invalid use of group function

Que debo de hacer para obtener los resultados que busco?
  #2 (permalink)  
Antiguo 22/11/2012, 08:31
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Sacar el Maximo de varios promedios MYSQL

Buscando y Buscando, he resuelto mi problema aplicando esto:

Código MySQL:
Ver original
  1. SELECT MAX(tiempotD) as tmaxma, MIN(tiempotD) as tminma, (SEC_TO_TIME(AVG(TIME_TO_SEC(`tiempotD`)))) as tproma FROM (SELECT (SEC_TO_TIME(AVG(TIME_TO_SEC(`tiempo_ent`)))) as tiempotD, `id_franquicia` as Franq FROM for_tie_proc WHERE DATE_FORMAT(fec_med, '%m')=11 GROUP BY `id_franquicia`)for_tie_proc

aproveche de una y calcule el max el min y el promedio, de los datos que tengo, si alguien necesita algo igual...
  #3 (permalink)  
Antiguo 22/11/2012, 08:41
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Sacar el Maximo de varios promedios MYSQL

Código MySQL:
Ver original
  1. DATE_FORMAT(fec_med, '%m')=11
¿Por qué complicas el uso de funciones?
Código MySQL:
Ver original
  1. MONTH(fec_med) = 11
Con la otra forma le obligas a hacer una doble conversión implícita innecesaria.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/11/2012, 08:56
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Sacar el Maximo de varios promedios MYSQL

Lo siento no soy tan diestro con las consulta....
  #5 (permalink)  
Antiguo 22/11/2012, 09:02
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Sacar el Maximo de varios promedios MYSQL

Una pregunta tengo que repetir la misma consulta para varios meses, como simplificaria eso sin tener que repetir una y otra vez la misma consulta.?
  #6 (permalink)  
Antiguo 22/11/2012, 09:06
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Sacar el Maximo de varios promedios MYSQL

Código MySQL:
Ver original
  1. GROUP BY MONTH(fec_med)
o bien, si quieres ordenadamente:
Código MySQL:
Ver original
  1. GROUP BY YEAR(fec_med), MONTH(fec_med)
En cuanto a qué funciones usar, te conviene siempre leer el manual de referencia, que está on line...
Todos hacemos eso, sino, ¿cómo crees que aprendimos?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 22/11/2012, 09:20
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Sacar el Maximo de varios promedios MYSQL

ok con eso agruparia por mes, yo recibo un mes de un formulario y debo recoger los datos de ese mes y 3 meses menos... entonces meto la consulta en un for y voy imprimiendo?
  #8 (permalink)  
Antiguo 22/11/2012, 09:38
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Sacar el Maximo de varios promedios MYSQL

Lo que imprimas en pantalla es off-topic. es programación.
Eso lo debes preguntar en el foro del lenguaje.

En cuanto a la consulta se refiere, puedes con la misma consulta preguntar por un mes o por varios, simplemente poniendo el rango de fecha del WHERE con BETWEEN en lugar de buscar un mes específico.
Luego la paginación de la salida la resuelves por programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 22/11/2012, 09:41
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 8 meses
Puntos: 19
Respuesta: Sacar el Maximo de varios promedios MYSQL

si eso lo se, lo que hare es seguir consultando por mes en un bucle e ir decrementando, porque si lo hago en una consulta cuando en un mes en particular no arroje datos no saldrá nada y necesito hasta los valores (0)
  #10 (permalink)  
Antiguo 22/11/2012, 10:02
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Sacar el Maximo de varios promedios MYSQL

Cita:
porque si lo hago en una consulta cuando en un mes en particular no arroje datos no saldrá nada y necesito hasta los valores (0)
A nivel de consulta eso se resuelve usando IFNULL(campo, valorsiNulo).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: maximo, promedios, select, tabla
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 17:14.