Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

09 Mão na massa: agrupando resultados com CASE (RESOLVIDO)

Utilizando a consulta criada em aula, e apresentada anteriormente, traga a quantidade de registros existentes em cada categoria: 'Excelente', 'Ótimo', 'Muito Bom', 'Bom' e 'Ruim'.

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

Olá Douglas, tudo bem?

Você já está no caminho certo! A única sugestão que tenho é corrigir a sintaxe do alias da coluna Quantidade, já que em SQL o uso de aspas simples pode causar problemas dependendo do banco de dados.

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

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Agradeço muito pela correção do alias da coluna Quantidade. Tenho uma dúvida:

No alias, não devo utilizar aspas simples (’ ')? Em quais casos devo usar aspas simples e aspas duplas?

Desde já, agradeço pela explicação.

solução!

Olá Douglas.

Desculpe a demora em obter um retorno.

Em SQL, o uso de aspas simples (') e aspas duplas (") serve a propósitos diferentes, e entender essa distinção pode evitar problemas futuros.

  • Aspas simples ('): São usadas para delimitar valores literais (strings) dentro da consulta. Por exemplo, no seu CASE, quando você associa uma nota a um status, como 'Excelente', 'Ótimo', etc., você está usando aspas simples porque está definindo um valor de texto.

    CASE nota
      WHEN 5 THEN 'Excelente'  -- 'Excelente' é um valor literal
    
  • Aspas duplas ("): São usadas em alguns sistemas de banco de dados para delimitar nomes de colunas, tabelas ou aliases que podem ter caracteres especiais, como espaços, ou que sejam palavras reservadas do SQL.

No caso do seu alias, para Quantidade, não é necessário usar aspas. Você pode simplesmente atribuir o alias assim:

COUNT(*) AS Quantidade

Aspas simples podem gerar erros, pois o SQL irá interpretar 'Quantidade' como uma string, e não como o nome de uma coluna ou alias.

Espero que isso esclareça a diferença! Se ainda restar alguma dúvida, estou por aqui.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!