1
resposta

09 Mão na massa: agrupando resultados com CASE

select nota, count(8) as Quantidade_avaliacoes,
case nota
     when 5 then 'Excelente'
     when 4 then 'Ótima'  
     when 3 then 'Muito bom'
     when 2 then 'Bom'  
     else 'Ruim'
END as Status_nota     
from avaliacoes
group by nota
order by nota;
1 resposta

Boa tarde Rafaela! Tudo bem com você?

Obrigado por compartilhar sua resolução com a comunidade Alura. Sua consulta está correta, mas, há um pequeno detalhe que precisa ser ajustado. No seu SELECT, ao usar count(8), a função COUNT está contando um valor fixo, o que não é o ideal para contar registros. O correto é usar count(*) ou count(nota) para contar o número de registros em cada categoria. Por exemplo:

SELECT nota, count(*) as Quantidade_avaliacoes,
CASE nota
     WHEN 5 THEN 'Excelente'
     WHEN 4 THEN 'Ótima'  
     WHEN 3 THEN 'Muito bom'
     WHEN 2 THEN 'Bom'  
     ELSE 'Ruim'
END as Status_nota     
FROM avaliacoes
GROUP BY nota
ORDER BY nota;

Embora os resultados possam ser os mesmos em algumas situações, a prática recomendada é usar COUNT(*) para contar o número total de registros, pois ela é mais intuitiva e evita confusão com valores constantes como no caso de COUNT(8).

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado