Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

GROUP BY de Hombres y Mujeres

Estas en el tema de GROUP BY de Hombres y Mujeres en el foro de PostgreSQL en Foros del Web. Hola amigos. Tengo una duda con una consulta SQL y no se como hacerlo Primeramente tengo una tabla “personas” con los atributos pers_id, pers_nombre, pers_apellidos, ...
  #1 (permalink)  
Antiguo 25/05/2011, 12:19
 
Fecha de Ingreso: enero-2011
Ubicación: la paz
Mensajes: 53
Antigüedad: 13 años, 2 meses
Puntos: 3
GROUP BY de Hombres y Mujeres

Hola amigos.

Tengo una duda con una consulta SQL y no se como hacerlo
Primeramente tengo una tabla “personas” con los atributos pers_id, pers_nombre, pers_apellidos, pers_fnacimiento, etc
Lo que quiero realizar es una consulta SQL, que me muestre la cantidad de personas “Hombre” y “Mujer” que han nacido en un determinado mes y año, que se puedan agrupar por columnas de “AÑO” y “SEXO” y también agrupar por Filas “MES”
Año y Mes se obtienen de la fecha de nacimiento
El resultado más o menos seria una tabla de esta forma.
|__ 2000_ |__2001_ |__2002_ |__2003_ |
___|_H_|_M_|_H_|_M_|_H_|_M_|_H_|_M_|
Ene| 36 | 25 | 24 | 16 | 46 | 32 | 33 | 38 |
Feb| 36 | 25 | 36 | 25 | 36 | 25 | 36 | 25 |

Hasta ahora lo hice para un año y no sé cómo hacerlo para un rango de años 2000-2005

Esta es mi consulta SQL

Código PostgreSQL:
Ver original
  1. SELECT to_char(p.pers_fnacimiento,'Month'),
  2.        sum(CASE WHEN p.pers_sexo = 'H' THEN 1 ELSE 0 END) H,
  3.        sum(CASE WHEN p.pers_sexo = 'M' THEN 1 ELSE 0 END) M,
  4.        count(*) total
  5. FROM personas p
  6. WHERE to_char(p.pers_fnacimiento,'YYYY')='2002'
  7. GROUP BY to_char(p.pers_fnacimiento,'Month')

gracias por leer mi problema
  #2 (permalink)  
Antiguo 25/06/2011, 21:33
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: GROUP BY de Hombres y Mujeres


<saludos>
Ya intentaste con un between en vez de un = en el año?
Si la respuesta es true, entonces publica el sql con la creación
de tablas y los insert de los datos para hacer pruebas con los mismos.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 15/07/2011, 13:55
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: GROUP BY de Hombres y Mujeres

Recuerda que una consulta te devuelve los resultados en forma de vector, es decir, una sola línea. Para hacer lo que quieres, postgresql tiene crosstab, buscalo y prueba... y nos cuentas
__________________
Gracias de todas todas
-----
Linux!

Etiquetas: group
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:02.