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

Quantidade de registros existentes em cada categoria: 'Excelente', 'Ótimo', 'Muito Bom', 'Bom' e 'Ruim'.

Não consigo ordenar!!!

SELECT
  CASE nota
    WHEN 5 THEN 'Excelente'
    WHEN 4 THEN 'Ótimo'
    WHEN 3 THEN 'Muito Bom'
    WHEN 2 THEN 'Bom'
    ELSE 'Ruim'
  END AS StatusNota,
  COUNT(*) AS Quantidade
FROM avaliacoes
GROUP BY nota
ORDER BY nota DESC;

Print do MySQL

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Ola Terezinha.
A chave do sucesso é a resiliencia.
Erros são comuns e tentar resolve-los fortalecem nosso aprendizado.
Vamos lá:
O seu erro está na cláusula ORDER BY nota DESC, porque você está usando o GROUP BY nota, mas na seleção final não está selecionando diretamente a coluna nota, e sim o CASE nota ... END AS StatusNota.
Quando você faz o GROUP BY nota, o SQL entende que você está agrupando pela nota numérica (1, 2, 3, etc.). Só que no SELECT, você transforma essa nota em um texto com CASE, e não seleciona a coluna nota diretamente.
Portanto, o erro pode estar acontecendo porque o campo nota não está disponível no ORDER BY, dependendo do banco de dados que você está usando.
Sugestão:
Adicionar nota no SELECT e ordenar por ela:

SELECT
  nota,
  CASE nota
    WHEN 5 THEN 'Excelente'
    WHEN 4 THEN 'Ótimo'
    WHEN 3 THEN 'Muito Bom'
    WHEN 2 THEN 'Bom'
    ELSE 'Ruim'
  END AS StatusNota,
  COUNT(*) AS Quantidade
FROM avaliacoes
GROUP BY nota
ORDER BY nota DESC;

A diferença aqui é que você explicita a coluna nota no SELECT, então pode ordenar sem erro.
Testa ai e verifique se deu certo.
Senão podemos abordar de outras maneiras.
Bons estudos.