Questão FC369433
Em consultas SQL que envolvem funções agregadas, é essencial compreender a sintaxe e a lógica no uso das cláusulas relevantes. Considere uma tabela chamada funcionarios, que possui
Linguagem SQL
FGV · 2025
Em consultas SQL que envolvem funções agregadas, é essencial compreender a sintaxe e a lógica no uso das cláusulas relevantes.
Considere uma tabela chamada funcionarios, que possui os seguintes campos: id (inteiro), nome (texto), salario (numérico), e departamento (texto).
Deseja-se escrever uma consulta que liste os departamentos cujo salário médio dos funcionários seja superior a 3000. Assinale a alternativa que apresenta a consulta SQL com sintaxe correta para esse caso.
- SELECT departamento, AVG(salario) FROM funcionarios WHERE AVG(salario) > 3000 GROUP BY departamento;
- SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento WHERE AVG(salario) > 3000;
- SELECT departamento, AVG(salario) FROM funcionarios GROUP BY AVG(salario) HAVING AVG(salario) > 3000;
- SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento HAVING AVG(salario) > 3000;
- SELECT departamento, AVG(salario) FROM funcionarios HAVING AVG(salario) > 3000;
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A consulta SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento HAVING AVG(salario) > 3000; agrupa os registros por departamento e calcula a média do campo salario dentro de cada grupo usando AVG.
Como a coluna departamento aparece sem função agregada, é necessária a cláusula GROUP BY para definir os grupos sobre os quais a agregação será aplicada.
A cláusula HAVING é usada para filtrar os grupos gerados, permitindo testar a expressão agregada \(AVG(salario)\). No caso, mantém-se apenas os departamentos cujo \(AVG(salario) > 3000\).
O resultado retorna duas colunas: o nome do departamento e a média salarial do respectivo grupo, apenas para aqueles que satisfazem a condição de filtro.
Conteúdo do catálogo FC Concursos · Atualizado em