PostgreSQL - ¿Cómo contar y mostrar dos cuentas distintas?

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 2 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

¿Cómo contar y mostrar dos cuentas distintas?

Publicado por Juan Ignacio (2 intervenciones) el 01/06/2019 00:49:30
Hola comunidad.

Necesito hacer la siguiente consulta teniendo en cuenta las tablas de una base de datos que les copio a continuación:

Extraer un listado de todas las sucursales (número) junto con el número de
empleados masculinos y el número de empleados femeninos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
EMPLEADOS ( idEmpleado,dni, nombre, sexo, fec_nac, fec_alta, salario, idsucursal,
direccion)
CK(dni) FK(idsucursal,SUCURSALES)
 
SUCURSALES ( idSucursal, direcion, telefono )
 
CUENTAS ( idCuenta,num_cta, fec_apertura, idSucursal )
CK(num_cta) FK(idSucursal, SUCURSALES)
 
CLIENTES ( idCliente,dni, nombre, direccion, telefono )
CK(dni)
 
TITULARES ( idCuenta, idCliente, num_orden)
FK(idCuenta,CUENTAS) FK(idCliente, CLIENTES)
 
CAJEROS ( idCajero,codigo, tipo, idsucursal )
CK(codigo) FK(idSucursal, SUCURSALES)
 
OPERACIONES ( idCajero, fec_Ope, hor_ope, tipo, descripcion, importe, idcuenta )
FK(idcuenta, CUENTAS) FK(idcajero, CAJEROS)

El problema es que no entiendo bien como contar por un lado los femeninos y por otro los masculinos en una misma consulta. Pense que se puede hacerse de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
SELECT idSucursal, COUNT (idEmpleado) as Hombres
FROM EMPLEADOS E
WHERE (E.sexo = 'masculino')
GROUP BY idSucursal
 
UNION
 
SELECT idSucursal, COUNT (idEmpleado) as Mujeres
FROM EMPLEADOS E
WHERE (E.sexo = 'femenino')
GROUP BY idSucursal

Pero como hago para mostrar luego la cantidad de empleados femeninos y masculinos por cada sucursal.

Se les ocurre otra forma ? Gracias.
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
Imágen de perfil de roberto
Val: 2
Ha aumentado 1 puesto en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

¿Cómo contar y mostrar dos cuentas distintas?

Publicado por roberto (4 intervenciones) el 14/06/2019 17:02:20
Hola Probate con esta agrupacion y me cuentas. devueltve por cada sucursal la cantidad de mujeres y hombres.-

SELECT e.idSucursal, e.sexo, COUNT (e.idEmpleado)
FROM EMPLEADOS E
WHERE
GROUP BY idSucursal, e.sexo
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
sin imagen de perfil
Val: 3
Ha disminuido su posición en 2 puestos en PostgreSQL (en relación al último mes)
Gráfica de PostgreSQL

¿Cómo contar y mostrar dos cuentas distintas?

Publicado por Juan Ignacio (2 intervenciones) el 15/06/2019 19:46:19
Finalmente lo resolví de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
SELECT S.idSucursal, (SELECT COUNT (*)
    FROM EMPLEADOS E
    WHERE E.sexo = 'm'
    AND E.idSucursal = S.idSucursal) AS TotalMasculinos,
 
    (SELECT COUNT (*)
    FROM EMPLEADOS E
    WHERE E.sexo = 'f'
    AND E.idSucursal = S.idSucursal) AS Totalfemeninos
FROM SUCURSALES S

Gracias de todos modos.
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