Considere o seguinte requisito: “Para cada departamento com...

Próximas questões
Com base no mesmo assunto
Q403008 Banco de Dados
Considere o seguinte requisito: “Para cada departamento com menos de 1000 funcionários devem ser listados os salários médios de cada departamento”. As cláusulas SQL-ANSI vinculadas a uma única expressão SELECT, uma que calcula o salário médio e a outra que restringe a quantidade de empregados são, respectivamente,
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - AVG e HAVING.

Para entender a solução, é necessário conhecer funções de agregação e cláusulas de filtragem no SQL. A função AVG() é usada para calcular a média dos valores de um conjunto de dados, enquanto a cláusula HAVING é utilizada para filtrar resultados de consultas que utilizam funções de agregação, diferentemente da cláusula WHERE, que é aplicada antes dos dados serem agrupados.

Na questão, a necessidade é calcular o salário médio (AVG) por departamento e restringir os resultados aos departamentos com menos de 1000 funcionários. Como estamos lidando com um filtro que depende do resultado de uma função de agregação (contagem de funcionários), devemos utilizar a cláusula HAVING após agrupar os dados por departamento.

A consulta SQL que cumpre o requisito poderia ser assim estruturada:

```sql SELECT DepartamentoID, AVG(Salario) AS SalarioMedio FROM Funcionarios GROUP BY DepartamentoID HAVING COUNT(FuncionarioID) < 1000; ```

Assim, cada departamento será agrupado, a média dos salários será calculada e, em seguida, será aplicado o filtro para retornar apenas aqueles departamentos com menos de 1000 funcionários.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo