Como puedo hacer una consulta calculada
Publicado por Pau Vidal (1 intervención) el 20/03/2007 10:45:31
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.
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.
Valora esta pregunta


0