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

Consulta Sql

Estas en el tema de Consulta Sql en el foro de Mysql en Foros del Web. Quiero realizar una consulta sql agrupando todos los registro que tengan la misma matricula y sacar el promedio de ccada grupo de matriculas de sus ...
  #1 (permalink)  
Antiguo 12/10/2008, 10:40
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 20 años, 6 meses
Puntos: 0
Consulta Sql

Quiero realizar una consulta sql agrupando todos los registro que tengan la misma matricula y sacar el promedio de ccada grupo de matriculas de sus ccalificaciones... ordernarlo de manera descendente Para luego sacar solo los tres primeros registros. Estoy usando el siguiente sentencia, pero me da un error en la parte de ORDER BY, Por que quiero que el ORDER BY SEA POR LA FORMULA DEL PROMEDIO ---avg()

SELECT EST_MATRICULA, REG_NOTAFINAL, AVG(REG_NOTAFINAL)
FROM registro
GROUP BY EST_MATRICULA
ORDER BY AVG(REG_NOTAFINAL)
asi me da u n error incluso probando con el myPhpAdmin,

De esta forma me funciona, pero nome da lo que deseo.
SELECT EST_MATRICULA, REG_NOTAFINAL, AVG(REG_NOTAFINAL)
FROM registro
GROUP BY EST_MATRICULA
ORDER BY REG_NOTAFINAL
Si lo hago de esta forma ORDER BY REG_NOTAFINAL, me ejecuta la sentencia bien, pero lo organiza por la nota final, PERO LO QUIERO POR EL PROMEDIO DE LA NOTA FINAL, campo que no tengo en la base de datos y lo estoy sacando con el AVG() y por este avg es que quiero ORDER BY

Estoy agrupando por matricula porque cada estudiante, puede tener varias materias a la vez. y quiero la mejor calificacion promedio de todas las calificaciones(notas)

Que hago para poder ordenar sacando por el promedio ( por esa formula)..
  #2 (permalink)  
Antiguo 13/10/2008, 09:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Consulta Sql

Alguien me puede ayudar con esto, es imposible hacer esto?
ORdenar los datos por una formula :avg(REG_NOTAFINAL)
  #3 (permalink)  
Antiguo 13/10/2008, 14:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta Sql

nestorvaldez,

debería funcionarte
SELECT EST_MATRICULA, AVG(REG_NOTAFINAL) media
FROM registro
GROUP BY EST_MATRICULA
ORDER BY AVG(REG_NOTAFINAL)

te he quitado REG_NOTAFINAL porque no tiene sentido, ya que te mostrará la primera de las notas de cada matricula y no será representativa de nada.

De todas formas, si sigue fallando dinos qué naturaleza tiene REG_NOTAFINAL.
  #4 (permalink)  
Antiguo 16/10/2008, 08:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Consulta Sql

doestn work

REG_notafinal es: decimal 3,1

I get this error message testing from my phpadmin

MySQL ha dicho: Documentación
#1111 - Invalid use of group function
  #5 (permalink)  
Antiguo 16/10/2008, 10:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta Sql

nestorvaldez,

he probado con una tabla creada por mí y funciona todo perfectamente:
SELECT t.matricula, avg(t.numero) media from tabla t group by t.matricula order by media desc

El campo numero es decimal 3,1.

Revisa todo, los nombres de los campos, si estás añadiendo alguna búsqueda a la consulta, la naturaleza del resto de los campos, si todos los campos pertenecen a la misma tabla, pues si fueran dos tablas, faltaría la relación, etc.
De momento, sólo se me ocurre esto.
  #6 (permalink)  
Antiguo 16/10/2008, 11:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 62
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Consulta Sql

Aparentemente hay algun problema con el mysql que provee el suplidor del hosting, porque le pase la tabla completa a un amigo y el tiene mysql 5 y el mismo query le funciono bien, pero con mi servidor no funciona. y tengo la version 4.1.22 en el hosting. o sea hicimos la misma prueba con la misma base datos y el mismo query en otro servidor con la version 5 y funciono con esta no..

Como puedo resolver esto..?
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 21:19.