Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Desafío: clasificando clientes por rango de edad

Según entiendo el script de SQL para lo solicitado seria el siguiente:

SELECT [NOMBRE],
CASE WHEN YEAR([FECHA DE NACIMIENTO]) < 1990 THEN 'ADULTOS'
WHEN YEAR([FECHA DE NACIMIENTO]) >= 1990 AND YEAR([FECHA DE NACIMIENTO]) <= 1995 THEN 'JOVENES ADULTOS'
ELSE 'JOVENES' END
FROM [CLIENTES]
GROUP BY NOMBRE, CASE WHEN YEAR([FECHA DE NACIMIENTO]) < 1990 THEN 'ADULTOS'
WHEN YEAR([FECHA DE NACIMIENTO]) >= 1990 AND YEAR([FECHA DE NACIMIENTO]) <= 1995 THEN 'JOVENES ADULTOS'
ELSE 'JOVENES' END 
ORDER BY CASE WHEN YEAR([FECHA DE NACIMIENTO]) < 1990 THEN 'ADULTOS'
WHEN YEAR([FECHA DE NACIMIENTO]) >= 1990 AND YEAR([FECHA DE NACIMIENTO]) <= 1995 THEN 'JOVENES ADULTOS'
ELSE 'JOVENES' END;
2 respuestas
solución!

¡Hola Mynor!

En primer lugar, quiero felicitarte por tu solución para clasificar a los clientes por rango de edad. Tu script de SQL parece estar bien estructurado y cumple con el objetivo de clasificar a los clientes según su año de nacimiento.

Sin embargo, me gustaría sugerirte una pequeña mejora en tu consulta. En lugar de repetir la misma expresión CASE tres veces (en la lista de selección, en la cláusula GROUP BY y en la cláusula ORDER BY), puedes utilizar un alias para simplificar tu código y hacerlo más legible. Por ejemplo:

SELECT [NOMBRE],
CASE WHEN YEAR([FECHA DE NACIMIENTO]) < 1990 THEN 'ADULTOS'
WHEN YEAR([FECHA DE NACIMIENTO]) >= 1990 AND YEAR([FECHA DE NACIMIENTO]) <= 1995 THEN 'JOVENES ADULTOS'
ELSE 'JOVENES' END AS [RANGO DE EDAD]
FROM [CLIENTES]
GROUP BY [NOMBRE], [RANGO DE EDAD]
ORDER BY [RANGO DE EDAD];

Con esta modificación, tu consulta sigue clasificando a los clientes por rango de edad, pero utiliza un alias para simplificar el código y evitar repeticiones innecesarias.

Espero que esta sugerencia te sea útil. ¡Buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)

Muchas gracias por la sugerencia, siempre son bien recibidas. Será muy util para esta y proximas ocasiones.

Saludos