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_preco, AVG(preco_de_lista) FROM tabela_de_produtos
GROUP BY embalagem,
CASE
WHEN preco_de_lista >= 12 THEN 'Produto caro'
WHEN preco_de_lista >= 7 ANDpreco_de_lista < 12 then 'Produto em conta'
ELSE 'Produto barato'
END;
se fizer um GROUP BY embalagem, status_preco
dá o mesmo resultado eliminando a necessidade de um outro case
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_preco, AVG(preco_de_lista) FROM tabela_de_produtos
GROUP BY embalagem status_preco;
Faz sentido?