Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Então, minha tabela tem 3 campos: "ID_USER" - "ID_PARA" e "NOTA"
ID_USER é o usuário que votou
ID_PARA é o usuário que recebeu o voto e
NOTA é a nota que foi enviada ao usuário (de 1 a 10)
To tentando fazer uma query (ou algum jeito, em PHP) que pegue todos os votos e mostre os 5 com as melhores médias de notas em todos os votos
por exemplo:
ID_USER | ID_PARA | NOTA
1 | 2 | 5
3 | 2 | 8
2 | 1 | 6
2 | 3 | 7
1 | 3 | 4
Quero que a query faça a média da nota dos votos e retorne os com melhor média
Tem como?
Abraços
Select
id_para, avg(nota)
from tabela
group by id_para
order by avg(nota) DESC
LIMIT 5
ou este que o giesta passou heueheuehe http://forum.imasters.com.br/public/style_emoticons/default/yay.gif
fiz uma subquery ali louca mas pelo visto nem precisava mesmo e tem este AVG.
http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif
K.I.S.S.
:P
aêê funcionou perfeito! valeu pelo apooi giesta e cassitos ^^
hummm
veja se isto dá uma luz:
>
SELECT ID_PARA, SUM(NOTA)/COUNT(*) AS MEDIA
FROM votos
GROUP BY ID_PARA
HAVING MEDIA >=
(SELECT SUM(NOTA)/COUNT(*) AS MEDIAGERAL FROM votos)
ORDER BY MEDIA DESC
LIMIT 5
ali está calculando a média geral (azul). e está retornando os registros cujo a média (verde) seja maior ou igual a média geral. ordena decrescentemente pela média do usuário e limita em 5 registros.
:wacko: