Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegoaferraz

Select

Recommended Posts

Boa tarde preciso de uma ajuda com um select.

 

Tenho uma tabela de classificação para produtos, onde o usuário vota

 

Campos: id, produto, voto (de 1 a 5 -> 1=péssimo, 2=ruim, 3=médio, 4=bom, 5=ótimo)

 

 

Gostaria de fazer um SELECT para buscar todos os produtos classificados como "Bons".. ou seja todos os produtos que receberam o maior número de votos sendo 4.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo hipotético:

 

Com isso, você traria todos os produtos com voto = 4.

 

SELECT *

FROM produtos p, classificacao c

WHERE c.produtoId = p.produtoId

AND c.voto = 4

GROUP BY p.produtoId

 

Mas como saber qual produto teve mais 4? Aí exigiria um pouco mais de pesquisa...

 

Talvez SUM.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como nosso amigo Motta falou, vou ilustrar com base no artigo que ele recomendou. Valeu Motta por mais essa dica...

SELECT * FROM (SELECT produto, MAX(votos) AS topvotos FROM (SELECT produto, voto, count(voto) AS votos
FROM classificacao_tabela
GROUP BY produto, voto) produto_vs_valorDoVoto_vs_totalDeVotos
WHERE voto = 4
GROUP BY produto) produto_vs_topvotos
WHERE topvotos = 4

Espero ter ajudado :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como nosso amigo Motta falou, vou ilustrar com base no artigo que ele recomendou. Valeu Motta por mais essa dica...

SELECT * FROM (SELECT produto, MAX(votos) AS topvotos FROM (SELECT produto, voto, count(voto) AS votos
FROM classificacao_tabela
GROUP BY produto, voto) produto_vs_valorDoVoto_vs_totalDeVotos
WHERE voto = 4
GROUP BY produto) produto_vs_topvotos
WHERE topvotos = 4

Espero ter ajudado :)

 

Perfeito Leo

 

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.