Como puedo hacer una consulta calculada

20/03/2007 - 12:00 por Pau Vidal | Informe spam
Buenos días a todos.

Tengo un problema de consulta de MySQL, he estado buscando en casi todos los
temas algo parecido, pero no consigo ver a nadie que haya tenido el mismo
problema.

Tengo una tabla de votaciones y tengo que hacer una selección ordenada por
los más votados.

La tabla tiene dos campos importantes, FK_USUARIO y PUNTUACION

Lo que he conseguido es que con esta consulta, me sume el total de puntos y
me de la cantidad de votos que tiene cada usuario.

SELECT *, sum(valoraciones.puntuacion) as total_votos FROM usuarios LEFT
JOIN valoraciones ON valoraciones.fk_usuario_valoracion =
usuarios.id_usuarios GROUP BY valoraciones.fk_usuario_valoracion ORDER BY
total_votos DESC

En este caso, el me da el total de votos, pero necesito dividirlo por la
cantidad de votos para sacar el promedio.

SELECT *, SUM(puntuacion) AS total_puntos, COUNT(fk_usuario_valoracion) AS
total FROM `valoraciones` GROUP BY valoraciones.fk_usuario_valoracion ORDER
BY
total_puntos;

En esta segunda, consigo el total + la cantidad, pero aqui es donde viene el
problema cuando quiero que en la misma consulta aparezca la media
directamente, algo como esto:

(total_puntos / total) AS total_final

Alguien sabe como solucionar este tema en una o varias consultas?

Gracias anticipadas.
 

Leer las respuestas

#1 Jose Mariano Alvarez
20/03/2007 - 12:27 | Informe spam
Este foro es de SQL Server y no de MySql.



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el problema
también ayuda.



"Pau Vidal" <Pau wrote in message
news:
Buenos días a todos.

Tengo un problema de consulta de MySQL, he estado buscando en casi todos
los
temas algo parecido, pero no consigo ver a nadie que haya tenido el mismo
problema.

Tengo una tabla de votaciones y tengo que hacer una selección ordenada por
los más votados.

La tabla tiene dos campos importantes, FK_USUARIO y PUNTUACION

Lo que he conseguido es que con esta consulta, me sume el total de puntos
y
me de la cantidad de votos que tiene cada usuario.

SELECT *, sum(valoraciones.puntuacion) as total_votos FROM usuarios LEFT
JOIN valoraciones ON valoraciones.fk_usuario_valoracion > usuarios.id_usuarios GROUP BY valoraciones.fk_usuario_valoracion ORDER BY
total_votos DESC

En este caso, el me da el total de votos, pero necesito dividirlo por la
cantidad de votos para sacar el promedio.

SELECT *, SUM(puntuacion) AS total_puntos, COUNT(fk_usuario_valoracion) AS
total FROM `valoraciones` GROUP BY valoraciones.fk_usuario_valoracion
ORDER
BY
total_puntos;

En esta segunda, consigo el total + la cantidad, pero aqui es donde viene
el
problema cuando quiero que en la misma consulta aparezca la media
directamente, algo como esto:

(total_puntos / total) AS total_final

Alguien sabe como solucionar este tema en una o varias consultas?

Gracias anticipadas.

Preguntas similares