Geral Múltipla Escolha

Um analista deseja descobrir a quantidade de funcionários por sexo na tabela FUNCIONARIO. Considerando o uso da cláusula GROUP BY, qual consulta SQL é a mais adequada para esse propósito?

Um analista deseja descobrir a quantidade de funcionários por sexo na tabela FUNCIONARIO. Considerando o uso da cláusula GROUP BY, qual consulta SQL é a mais adequada para esse propósito?

  1. SELECT COUNT(*) FROM FUNCIONARIO WHERE SEXO GROUP BY SEXO;
  2. SELECT SEXO, COUNT(*) FROM FUNCIONARIO GROUP BY SEXO;
  3. SELECT SEXO FROM FUNCIONARIO WHERE COUNT(*) > 1;
  4. SELECT COUNT(SEXO) FROM FUNCIONARIO;
  5. SELECT SEXO, COUNT(*) FROM FUNCIONARIO ORDER SEXO;

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - SELECT SEXO, COUNT(*) FROM FUNCIONARIO GROUP BY SEXO;

Para resolver este problema, precisamos utilizar a estrutura de consulta SQL que permite agrupar dados e realizar cálculos sobre esses grupos.

Análise da Solução

A cláusula GROUP BY é utilizada para reunir linhas que têm os mesmos valores em colunas específicas. Neste caso, queremos separar os funcionários por seu gênero (Sexo) e contar quantos há em cada grupo.

A estrutura correta de uma consulta com agregação é:

  1. SELECT: Escolher as colunas que desejamos ver (o Sexo) e a função de agregação (Contagem).
  2. FROM: Indicar a tabela onde os dados estão (FUNCIONARIO).
  3. GROUP BY: Especificar a coluna pela qual os dados devem ser organizados (SEXO).

A alternativa B aplica exatamente essa lógica:

  • Seleciona a coluna SEXO.
  • Conta o número de registros com COUNT(*).
  • Agrupa os resultados utilizando GROUP BY SEXO.

Isso resultará em uma tabela com duas linhas (assumindo apenas Masculino e Feminino), mostrando o nome do sexo e a quantidade de pessoas nele.

Por que as outras estão incorretas?

AlternativaErro Principal
AUsa WHERE incorretamente. A cláusula WHERE serve para filtrar linhas antes do agrupamento, mas não aceita apenas o nome da coluna sem uma condição (ex: WHERE SEXO = 'M').
CFunções de agregação como COUNT() não podem ser usadas na cláusula WHERE. Se fosse necessário filtrar após o agrupamento, deveria usar HAVING.
DFaz a contagem total de todos os funcionários de uma vez só, sem separar por sexo, pois não utiliza GROUP BY.
EUtiliza ORDER em vez de ORDER BY. Além disso, sem GROUP BY, o SQL não saberia como associar o COUNT(*) a cada linha individual de SEXO.

Portanto, a alternativa B é a única sintaticamente correta e logicamente adequada para o objetivo proposto.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Geral

Ver mais Geral resolvidas

Tem outra questão de Geral?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.