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

Aula 3 - Atividade 12 - Tentando agrupar pelas classificações de idade

Olá, estou tentando fazer um complemento do exercício 12 fazendo um GROUP BY para agrupar os resultados pela faixa etária para organizar os resultados, porém não estou conseguindo, eu rodei esse código porém não agrupou de acordo com as classificações de 'adulto', 'jovem', ou 'criança'. Alguém poderia me ajudar por favor?

SELECT [NOME],[DATA DE NASCIMENTO],
CASE WHEN YEAR([DATA DE NASCIMENTO]) < '1990' THEN 'Adulto'
    WHEN YEAR([DATA DE NASCIMENTO]) >='1990' AND YEAR([DATA DE NASCIMENTO]) <='1995' THEN 'Jovem'
    ELSE 'Criança' END AS 'Classificação da idade'
FROM [TABELA DE CLIENTES]
GROUP BY [NOME],[DATA DE NASCIMENTO],CASE WHEN YEAR([DATA DE NASCIMENTO]) < '1990' THEN 'Adulto'
    WHEN YEAR([DATA DE NASCIMENTO]) >='1990' AND YEAR([DATA DE NASCIMENTO]) <='1995' THEN 'Jovem'
    ELSE 'Criança' END
;
2 respostas
solução!

Olá Gustavo, tudo bem? Eu não entendi muito bem como você deseja executar esse agrupamento, penso que você que uma consulta que mostre os primeiros resultados como 'Adulto', ai os próximos como 'Jovem' e os últimos como 'Criança' é isso? Bem, algo simples para isso seria colocar um ORDER BY da seguinte forma:

SELECT [NOME],[DATA DE NASCIMENTO],
CASE 
    WHEN YEAR([DATA DE NASCIMENTO]) < '1990' THEN 'Adulto'
    WHEN YEAR([DATA DE NASCIMENTO]) >='1990' AND YEAR([DATA DE NASCIMENTO]) <='1995' THEN 'Jovem'
    ELSE 'Criança' END AS 'Classificação da idade'
FROM [TABELA DE CLIENTES]
GROUP BY [NOME],[DATA DE NASCIMENTO], 
CASE 
    WHEN YEAR([DATA DE NASCIMENTO]) < '1990' THEN 'Adulto'
    WHEN YEAR([DATA DE NASCIMENTO]) >='1990' AND YEAR([DATA DE NASCIMENTO]) <='1995' THEN 'Jovem'
    ELSE 'Criança'
END
ORDER BY [DATA DE NASCIMENTO] ASC;

Assim você já teria o resultado esperado (que imagino que seja isso). Veja bem, nesse caso você não deseja agrupar os registro e sim ordenar os mesmos, por isso com o ORDER BY [DATA DE NASCIMENTO] ASC já vai atender a sua necessidade.

Espero ter ajudado!

Exatamente isso, muito obrigado!