SQL - Agrupar por rango de edades

 
Vista:

Agrupar por rango de edades

Publicado por José Arnulfo (3 intervenciones) el 29/07/2004 16:08:53
Antes que nada un saludo a Todos los Foristas. Tengo el siguiente problema: En una Tabla de Oracle almaceno la información personal de estudiante. Tengo como llave primaria la Clave Unica (CURP). Esta clave Unica contiene otra la siguiente estructura:
XXXX999999XXXXXX99, donde los primeros cuatro caracteres corresponden a caracteres de a cuerdo a tu nombre y los siguientes 6 corresponden a tu fecha de nacimiento organizado por aammdd.

Necesito hacer una consulta que me muestre el total de alumnos por rangos de edades. Los rango deben de ir de la siguiente manera

1. Menores de 20 años
2. de 20 a 25 años
3. de 25 a 30 años
4. mayores de 30 años.

y quiero que la consulta me muestre algo como lo siguiente:
Total de Alumnos en el rango 1: 12
Total de Alumnos en el rango 2: 53
Total de alumnos en el rango 3: 45
Total de alumnos en el rango 4: 9

Espero que me puedan ayudar con este problema y de antemano agradezco esa ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Agrupar por rango de edades

Publicado por Isaías Islas (5072 intervenciones) el 29/07/2004 18:02:06
Bueno, no conozco ORACLE, pero en SQL Server lo haria asi:

SELECT SUM(CASE WHEN DATEDIFF(YY, SUBSTRING(CURP, 5,6),GETDATE()) BETWEEN 0 AND 20 THEN 1 ELSE 0 END) AS [1-20] ,
SUM(CASE WHEN DATEDIFF(YY, SUBSTRING(CURP, 5,6),GETDATE()) BETWEEN 21 AND 25 THEN 1 ELSE 0 END) AS [21-25] ,
SUM(CASE WHEN DATEDIFF(YY, SUBSTRING(CURP, 5,6),GETDATE()) BETWEEN 26 AND 30 THEN 1 ELSE 0 END) AS [26-30],
SUM(CASE WHEN DATEDIFF(YY, SUBSTRING(CURP, 5,6),GETDATE()) > 30 THEN 1 ELSE 0 END) AS [> 30]
FROM ALUMNOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias Isaías

Publicado por José Arnulfo (3 intervenciones) el 29/07/2004 23:06:52
Muchas Gracias por tu ayuda Isaías, me sirvió mucho tu query, sólo lo tuve que adecuar a Oracle...

Nuevamente Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar