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

Ayuda: ERROR 1111 (HY000): Invalid use of group function

Estas en el tema de Ayuda: ERROR 1111 (HY000): Invalid use of group function en el foro de Mysql en Foros del Web. al ejecutar esta sentencia: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT id_equipo , id_equipo2 , avg ( SUM ( resultado_equipo1 + resultado_equipo2 ) ) AS ...
  #1 (permalink)  
Antiguo 22/03/2010, 02:44
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Ayuda: ERROR 1111 (HY000): Invalid use of group function

al ejecutar esta sentencia:

Código SQL:
Ver original
  1. SELECT id_equipo,id_equipo2,avg(SUM(resultado_equipo1 + resultado_equipo2)) AS media FROM partidos GROUP BY media;

me tira este error:

ERROR 1111 (HY000): Invalid use of group function



que puede ser?
  #2 (permalink)  
Antiguo 22/03/2010, 05:19
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: Ayuda: ERROR 1111 (HY000): Invalid use of group function

Porque las funciones AVG() y SUM son excluyentes, ya que ambas realizan operaciones totalizadoras sobre columnas, esto es: tanto una como otra hacen una operación que implica toda la columna indicada, y no operan sobre grupos de columnas.
En tu caso, parece que estuvieses confundiendo la función SUM() de Excel con la funcióN SUM() de SQL, y no son iguales.
El problema es que AVG() saca la media de un conjunto de valores representados en una columna, y SUM() realiza la suma de los valores de la columna. Ambas operaciones no se pueden hacer al mismo tiempo sobre el mismo grupo. O haces uno o haces el otro.

Puede que lo que hayas querido hacer sea:
Código MySQL:
Ver original
  1.     id_equipo,
  2.     id_equipo2,
  3.     avg(resultado_equipo1 + resultado_equipo2) media
  4. FROM partidos
  5. GROUP BY media;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 22/03/2010, 05:24
50l3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda: ERROR 1111 (HY000): Invalid use of group function

muchas gracias, me quedo tal que asi:

Código SQL:
Ver original
  1. SELECT e1.nombre equipo1,e2.nombre equipo2,avg(resultado_equipo1 + resultado_equipo2) AS media FROM partidos  p INNER JOIN equipos e1 ON p.id_equipo=e1.registro INNER JOIN equipos e2 ON p.id_equipo2=e2.registro GROUP BY id_equipo;

+-------------+-------------+----------+
| equipo1 | equipo2 | media |
+-------------+-------------+----------+
| los gordis | los flacos | 70.0000 |
| los flacos | los chungis | 165.0000 |
| los chungis | los gnomos | 110.0000 |
| los altos | los gnomos | 170.0000 |
| los gnomos | los hombre | 390.0000 |
| las mujeres | los flacos | 50.0000 |
| cursis | los morenos | 170.0000 |
| los morenos | cursis | 130.0000 |
+-------------+-------------+----------+

Etiquetas: function, group
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 00:50.