Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2012, 16:52
rubiomike
 
Fecha de Ingreso: marzo-2010
Mensajes: 128
Antigüedad: 14 años, 8 meses
Puntos: 3
Pregunta Consulta para crear un ranking

Hola a todos. Estoy haciendo una web de cine en la que quiero poner un ranking de las películas mejor valoradas por los usuarios. En el código que tengo programado, el ranking se ordena de forma descendente según la nota media de cada película y el número de votos que tiene, pero esto no es correcto. Necesito que la nota media valga un 98% y el número de votos un 2%.

Por ahora la consulta que tengo es la siguiente:

Código:
SELECT  peliculas.id,
	peliculas.titulo,
	peliculas.director,
	peliculas.year,
	votos_peliculas.id_pelicula,				 				 
  	IFNULL(AVG( votos_peliculas.nota ),0) AS promedio,
	COUNT(votos_peliculas.nota) AS votos
	FROM peliculas
   	LEFT JOIN votos_peliculas
     	ON peliculas.id = votos_peliculas.id_pelicula
   	GROUP BY peliculas.id 
  	ORDER BY promedio DESC, votos DESC
La estructura de la tabla que guarda los votos es:
id, id_pelicula, usuario_emisor, nota



Pero esa consulta no me vale porque si lo dejo de la forma que lo tengo pasaría lo siguiente:

El padrino Nota: 9 Votos: 2.353
El sexto sentido Nota: 8,5 Votos: 1
Matrix Nota: 8,4 Votos: 3.123

Como podéis ver una película con un solo voto podría situarse por encima de películas que han recibido miles de votos y tienen aproximadamente la misma nota media, y no lo puedo dejar así porque un fanboy podría dar a su película favorita un 10 y aparecer en lo más alto injustamente.

¿Sabe alguien como puedo realizar la consulta para que el orden de los resultados dependan de ese porcentaje?

Un saludo y gracias a todos