viernes, 16 de julio de 2010

PostgreSQL: Calcular la edad y obtener el grupo etario

Esta consulta es util si lo que se desa obtener es la edad de las personas registradas, ademas obtener el grupo etario al cual pertenecen.. Una consulta muy util si se desea realizar estadisticas por grupo etario..

select count(*),
/*substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int as edad, --Descomentar si deseas la edad de las personas*/
case
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int between 0 and 12
then '1-. INFANTE (0-12)'
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int between 13 and 17
then '2-. ADOLESCENTE (13-17)'
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int between 18 and 28
then '3-. JOVEN (18-28)'
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int between 29 and 35
then '4-. ADULTO JOVEN (29-35)'
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int between 36 and 59
then '5-. ADULTO (36-59)'
when substring(age(now(),p.f_nacimiento)::text from 1 for 2)::int >= 60
then '6-. ADULTO MAYOR (60 o mas)'
end AS grupo_etario
from persona p
group by grupo_etario /*,edad --Descomentar si deseas la edad de las personas*/
order by grupo_etario

3 comentarios:

  1. aja y es en que parte se coloca?, es que estoy empezando a penas en esto. gracias

    ResponderEliminar
    Respuestas
    1. Depende de lo q haces.. lo incluyes directamente en una funcion en tu codigo y lo ejecutas, o creas una funcion en postgres q reciba el parametro y retorne la cadena o la edad... eso es solo la consulta sql...

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar