Ir para conteúdo

Arquivado

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

diegohamaz

Problema com consulta com GROUP BY

Recommended Posts

Galera entendam o meu problema

 

eu tenho varios produtos com precos que se repetem

 

produto1 R$ 1200.00

produto1 R$ 1100.00

produto1 R$ 1000.00

produto1 R$ 900.00

 

 

produto2 R$ 1200.00

produto2 R$ 1100.00

produto2R$ 1000.00

produto2 R$ 900.00

 

 

produto3 R$ 1200.00

produto3 R$ 1100.00

produto3 R$ 1000.00

produto3 R$ 900.00

 

 

como eu faço pra pegar os produtos distintos (DISTINCT) e seus maiores valores (MAX) tentei o seguinte

 

SELECT DISTINCT(PRODUTO) as nome,PRECO
FROM tabela
WHERE PRECO <> ''
GROUP BY PRODUTO
ORDER BY PRECO DESC LIMIT 5
NESSA EU PEGO OS MAIORES VALORES DISTINTOS
E DEPOIS FAÇO UM ARRAY ASSIM EM PHP
$resu = mysql_query($inicia);
while ($pont = mysql_fetch_array($resu)) {
$tudo = "SELECT ROUND(AVG(PRECO)) as media,
MIN(PRECO)as menor
FROM TABELA
AND PRODUTO like '%".$pont['nome']."%'
pra pegar o que eu quero e tirar uma media de preço e valor min e max dos produtos, só que nao pegou certo no caso ele pegou o segundo valor produto1 é 1200 ele pegou o 1100, mas separou os produtos certinho.
como posso fazer isso pegar o valor correto, sendo que os produtos tem o mesmo nome?
Alguem pode me dar uma luz?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
o que eu quero e tirar uma media de preço e valor min e max dos produtos,

 

select produto,min(preco) min,max(preco) max,((min(preco) + max(preco)/2) media_min_max
fom produtos
group by produto

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele trouxe certinho os valores porem nao os 5 mais caros trouxe bagunçado , meu problema era essa, quebrando a cabeça, por isso tinha feito 2 querys...

Compartilhar este post


Link para o post
Compartilhar em outros sites

use um

ORDER BY ((min(preco) + max(preco)/2) DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites
select produto,min(preco) min,max(preco) max,((min(preco) + max(preco)/2) media_min_max
fom produtos
group by produto

 

Use um 'GROUP BY media_min_max DESC', pois como nomeou a coluna, o group by consegue interpretar

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.