Professor EBTT - Informática: Programação de Sistemas
Analise a seguinte consulta SQL:SELECT departamento, COUNT(*)FROM funcionariosGROUP BY departamentoHAVING COUNT(*) > 5;Essa consulta retorna:
AErro de sintaxe.
BApenas o total de funcionários da tabela.
CTodos os departamentos com exatamente 5 funcionários.
DTodos os funcionários cujo departamento possui mais de 5 funcionários.
EOs departamentos que possuem mais de 5 funcionários e a quantidade de funcionários em cada um deles.
Revelar gabarito e comentário▾
GabaritoE — Os departamentos que possuem mais de 5 funcionários e a quantidade de funcionários em cada um deles.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Cláusula GROUP BY com HAVING em SQL
Gabarito: letra E (Os departamentos que possuem mais de 5 funcionários e a quantidade de funcionários em cada um deles). A consulta agrupa os registros da tabela funcionarios por departamento e, com a cláusula HAVING, filtra apenas os grupos cuja contagem de linhas seja superior a 5. O resultado exibe o nome do departamento e o total de funcionários daquele departamento – exatamente o que a alternativa E descreve.
A banca testa o conhecimento da sintaxe e do significado da cláusula HAVING, que é usada para impor condições sobre grupos formados pelo GROUP BY. Diferentemente do WHERE (que filtra linhas antes do agrupamento), o HAVING age após o agrupamento, podendo usar funções de agregação como COUNT(*).
1FROM funcionarios
2GROUP BY departamento
3HAVING COUNT(*) > 5
4SELECT departamento, COUNT(*)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Afirma que a consulta gera erro de sintaxe. Não há erro: a sintaxe SELECT departamento, COUNT(*) FROM funcionarios GROUP BY departamento HAVING COUNT(*) > 5 é perfeitamente válida em SQL. A alternativa está errada.
Alternativa B — ❌ Incorreta
Diz que retorna "apenas o total de funcionários da tabela". A consulta retorna o total por departamento, não o total geral de toda a tabela. Além disso, o resultado inclui duas colunas (departamento e contagem), não apenas um número único. Errada.
Alternativa C — ❌ Incorreta
Afirma que retorna "todos os departamentos com exatamente 5 funcionários". A condição COUNT(*) > 5 exige que a contagem seja maior que 5, não igual a 5. Portanto, departamentos com exatamente 5 funcionários são excluídos. Errada.
Alternativa D — ❌ Incorreta
Diz que retorna "todos os funcionários cujo departamento possui mais de 5 funcionários". A consulta não retorna as linhas individuais dos funcionários; ela agrupa e retorna uma linha por departamento, com o nome do departamento e a contagem. O resultado não lista cada funcionário. Errada.
Alternativa E — ✅ Correta ⟵ GABARITO
Descreve exatamente o que a consulta faz: "os departamentos que possuem mais de 5 funcionários e a quantidade de funcionários em cada um deles". O GROUP BY departamento cria um grupo para cada departamento; COUNT(*) conta o número de linhas (funcionários) em cada grupo; HAVING COUNT(*) > 5 mantém apenas os grupos com contagem superior a 5; e o SELECT exibe o departamento e a contagem. Alternativa correta.