![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
29/12/2011, 11:42
|
| | Fecha de Ingreso: diciembre-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes Puntos: 0 | |
Respuesta: Agrupar por Rango de Edades Grande Matanga!!!
Usando tu logica se puede lograr la consulta agrupando muy bien los rangos. Lo habia estado trabajado tambien con CASE para crear los rangos y al agruparlos se me complicaba haciendo muuuuuy largo el query.
Ahora puedo incluir el BETWEEN para simplificarlo. Utilize ademas el comando FLOOR para aproximar la edad pero no es exacta, existe un comando para calcular la edad Real???
Gracias Nuevamente
Saludos. de Peru :D
SELECT
y.edad, COUNT(*) AS cantidad
FROM (
SELECT
(CASE x.age
WHEN 0 THEN '00_09'
WHEN 1 THEN '00_09'
WHEN 2 THEN '00_09'
WHEN 3 THEN '00_09'
(etc...)
WHEN 99 THEN '90_99'
ELSE 'OTROS'
END
) AS EDAD
FROM (
select
e.cod_socio,
e.fec_nacimiento,
to_date(sysdate) as today,
floor((to_date(sysdate)-to_date(e.fec_nacimiento))/365) as age
from soc_socio e
where e.cod_empresa = '001'
and e.cod_sucursal = '003'
and e.tip_estado IN ('A','C','S')
and e.fec_nacimiento >= '01-jan-1950'
order by 4 asc
) x
)y
GROUP BY y.edad
order by 1 |