Por que quando eu utilizo o código dessa maneira, me retorna apenas 3 resultados?
Print do resultado: https://ibb.co/t4j8c1n
O código é esse:
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) AS PRECO_MEDIO
FROM tabela_de_produtos
WHERE sabor = 'Manga'
GROUP BY EMBALAGEM
ORDER BY EMBALAGEM;
E quando eu utilizo o código com o segundo case, me retorna 5 resultados?
Print do resultado: https://ibb.co/s6XWQjb
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) AS PRECO_MEDIO
FROM tabela_de_produtos
WHERE sabor = 'Manga'
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;
O que eu entendi: Quando eu utilizo o segundo código, que contém o CASE no GROUP BY, o mysql calcula a média para cada critério do CASE, retornando 5 resultados.
O que eu não entendi: Por que quando eu utilizo o primeiro código, ele não retorna 5 resultados também?