Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usar alias no GROUP BY

Nos exemplos do case, quando é dado um nome ao case, como o STATUS_PRECO, por exemplo, acho mais fácil e legível usar esse STATUS_PRECO na hora do GROUP BY ao invés de copiar todo o case novamente. Teria algum problema fazer isso?

Por exemplo:

SELECT EMBALAGEM,
CASE
    WHEN PRECO_DE_LISTA >= 12 THEN "PRODUTO CARO"
    WHEN PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 12 THEN "GOSTEI MEDIO"
    ELSE "PRODUTO BARATO"
END AS STATUS_PRECO, AVG(PRECO_DE_LISTA) AS PRECO_MEDIO
FROM tabela_de_produtos WHERE SABOR LIKE '%Manga%'
group by EMBALAGEM, STATUS_PRECO
ORDER BY EMBALAGEM;

Na penúltima linha eu usei o alias STATUS_PRECO ao invés de copiar o case novamente. Funcionou igual e achei mais legível. Fiz isso tbm no ORDER BY.

1 resposta
solução!

Alvaro, no group by voce nao coloca o case novamente. Alí voce especifica que eu quero que a minha query seja agrupada por tal campo.

O bom de colocar o alias ao lado das colunas é a facilidade de leitura de codigo. se no futuro alguem for dar manutenção no seu codigo, ele vai saber que a coluna ali no group by, ou seja la onde for, vai ser especificamente de qual linha ali do select.