Eu poderia substituir o segundo CASE pelo nome da coluna criada no primeiro CASE na hora de colocar no GROUP BY? O código passaria de:
SELECT EMBALAGEM, AVG(PRECO_DE_LISTA) AS 'PREÇO MÉDIO',
CASE
WHEN PRECO_DE_LISTA >= 12 THEN 'PRODUTO CARO'
WHEN PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 12 THEN 'PRODUTO EM CONTA'
ELSE 'PRODUTO BARATO'
END AS STATUS_PREÇO
FROM tabela_de_produtos
GROUP BY EMBALAGEM,
CASE
WHEN PRECO_DE_LISTA >= 12 THEN 'PRODUTO CARO'
WHEN PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 12 THEN 'PRODUTO EM CONTA'
ELSE 'PRODUTO BARATO'
END
ORDER BY EMBALAGEM;
Para:
SELECT EMBALAGEM,
CASE
WHEN PRECO_DE_LISTA >= 12 THEN 'PRODUTO CARO'
WHEN PRECO_DE_LISTA >= 7 AND PRECO_DE_LISTA < 12 THEN 'PRODUTO EM CONTA'
ELSE 'PRODUTO BARATO'
END AS STATUS_PREÇO, AVG(PRECO_DE_LISTA) AS 'PREÇO MÉDIO'
FROM tabela_de_produtos
GROUP BY EMBALAGEM, STATUS_PREÇO /* ao invés de passar o case novamente, passei o mesmo nome da coluna criada no primeiro case.*/
ORDER BY EMBALAGEM;
Nesse exemplo consegui o mesmo resultado que o professor (mesmos valores e mesmas colunas). Porém eu teria algum problema em uma situação diferente?