Jump to content

Consulta totalizando por Setor


Pacifico

Postagens Recomendadas

Olá, não estou conseguindo realizar uma seguinte consulta:

Vou resumir a minha tabela colocando somente os campos necessários.

id, nome, setor,vinculo (os vinculos são: contrato temporário, efetivo, celetista, servico prestado)

Então, quero saber como faço para selecionar a quantidade de funcionários por setor e o total de vínculos.

Exemplo:

Setor: Recursos Humanos

contrato temporário - 03

efetivo - 100

celetista - 50

servico prestado - 30

 

Fico a grato pela ajuda!

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Administradores

Olá Pacifico

Vamos ver se eu entendi sua necessidade

 

Para selecionar a quantidade de funcionários por setor e o total de vinculos, poderiam ser SQLs diferentes ou até no mesmo.

 

Mas uma coisa não ficou muito claro, qual é a estrutura da sua tabela, se a cada registro, é o registro de uma pessoa na tabela, juntamente qual o seu tipo de vinculo, e o seu setor, então presumo que essa tabela seria como um registro de funcionário.

Então cada linha é um funcionário, agrupar isso por setor responde a primeira questão.

 Select
         Setor,
         count(*) as qtde        
        from tabela
        group by 1

 

Agora vc quer saber quantas pessoas de cada vinculo vc tem por setor, então vamos agrupar isso por setor e vinculo.

Select
         Setor,
         vinculo,
         count(*) as qtde        
        from tabela
        group by 1,2

 

Agora eu quero que tudo isso retorne no mesmo select, transformamos as duas querys em subselects, e linkados elas pelo setor, que é o ponto em comum.

select
    tbSetor.setor,
    tbSetor.qtde_pessoas_setor,
    tbVinculo.qtde_vinculos_setor
    from
    (
      Select
         Setor,
         count(*) as qtde_pessoas_setor        
        from tabela
        group by 1
    ) tbSetor
    join 
    (
    Select
         Setor,
         vinculo,
         count(*) as qtde_vinculos_setor       
        from tabela
        group by 1,2
    ) tbVinculo on TbVinculo.setor = tbSetor.setor

Responde aí, se eu atingi seu objetivo, ou se a estrutura que eu presumi da sua tabela, seja diferente.

 

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

Em 11/08/2023 at 12:21, Fabiano Passianoto disse:

Olá Pacifico

Vamos ver se eu entendi sua necessidade

 

Para selecionar a quantidade de funcionários por setor e o total de vinculos, poderiam ser SQLs diferentes ou até no mesmo.

 

Mas uma coisa não ficou muito claro, qual é a estrutura da sua tabela, se a cada registro, é o registro de uma pessoa na tabela, juntamente qual o seu tipo de vinculo, e o seu setor, então presumo que essa tabela seria como um registro de funcionário.

Então cada linha é um funcionário, agrupar isso por setor responde a primeira questão.

 Select
         Setor,
         count(*) as qtde        
        from tabela
        group by 1

 

Agora vc quer saber quantas pessoas de cada vinculo vc tem por setor, então vamos agrupar isso por setor e vinculo.

Select
         Setor,
         vinculo,
         count(*) as qtde        
        from tabela
        group by 1,2

 

Agora eu quero que tudo isso retorne no mesmo select, transformamos as duas querys em subselects, e linkados elas pelo setor, que é o ponto em comum.

select
    tbSetor.setor,
    tbSetor.qtde_pessoas_setor,
    tbVinculo.qtde_vinculos_setor
    from
    (
      Select
         Setor,
         count(*) as qtde_pessoas_setor        
        from tabela
        group by 1
    ) tbSetor
    join 
    (
    Select
         Setor,
         vinculo,
         count(*) as qtde_vinculos_setor       
        from tabela
        group by 1,2
    ) tbVinculo on TbVinculo.setor = tbSetor.setor

Responde aí, se eu atingi seu objetivo, ou se a estrutura que eu presumi da sua tabela, seja diferente.

 

 

Usando esta consulta, ele não disse quais os vinculos. Somente as quantidades.

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...