Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Instituto Legalle 2026

Banco de DadosSQL
Código
qg747465
Banca
Instituto Legalle
Órgão
BADESUL - RS
Ano
2026
Nível
Superior
Cargo
Técnico em Desenvolvimento - Analista de Sistemas (Ênfase em Arquiteto de Software)
Diante de um sistema com banco de dados relacional SQL Server com determinadas tabelas, conforme apresenta o quadro abaixo, equipe de RH necessita de um relatório que apresente o nome de cada secretaria e a média salarial dos servidores lotados nela que tenham sido admitidos há mais de 5 anos, listando somente as secretarias cuja média salarial desse grupo supere a média salarial de todos os servidores do município, com o resultado ordenado da maior para a menor média. SERVIDORES (id_servidor, nome, id_lotacao, data_admissao, salario)LOTACOES (id_lotacao, nome_lotacao, id_secretaria)SECRETARIAS (id_secretaria, nome_secretaria, orcamento anual) Assim, assinale a alternativa que contém o comando SQL capaz de atender CORRETAMENTE a esse requisito.
  1. ASELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial FROM servidores sv INNER JOIN lotacoes l ON sv.id_lotacao = l.id_lotacao INNER JOIN secretarias s ON l.id_secretaria = s.id_secretaria AND AVG(sv.salario) > (SELECT AVG(salario) FROM servidores) GROUP BY s.id_secretaria, s.nome_secretaria ORDER BY media_salarial DESC;
  2. BSELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial INNER JOIN lotacoes l ON sv.id_lotacao = l.id_lotacao INNER JOIN secretarias s ON l.id_secretaria = s.id_secretaria WHERE sv.data_admissao <= DATEADD(YEAR, -5, GETDATE()) GROUP BY s.id_secretaria, s.nome_secretaria HAVING media_salarial > (SELECT AVG(salario) FROM servidores)
  3. CSELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial FROM servidores sv INNER JOIN lotacoes l ON sv.id_lotacao = l.id_lotacao INNER JOIN secretarias s ON l.id_secretaria = s.id_secretaria WHERE sv.data_admissao <= DATEADD(YEAR, -5, GETDATE()) GROUP BY s.id_secretaria, s.nome_secretaria HAVING AVG(sv.salario) > (SELECT AVG(salario) FROM servidores) ORDER BY media_salarial DESC;
  4. DSELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial FROM servidores sv INNER JOIN lotacoes l ON sv.id_lotacao = l.id_lotacao WHERE sv.data_admissao <= DATEADD(YEAR, -5, GETDATE()) GROUP BY s.id_secretaria, s.nome_secretaria ORDER BY media_salarial DESC;
  5. ESELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial FROM servidores sv
Revelar gabarito e comentário

GabaritoC — SELECT s.nome_secretaria, AVG(sv.salario) AS media_salarial FROM servidores sv INNER JOIN lotacoes l ON sv.id_lotacao = l.id_lotacao INNER JOIN secretarias s ON l.id_secretaria = s.id_secretaria WHERE sv.data_admissao <= DATEADD(YEAR, -5, GETDATE()) GROUP BY s.id_secretaria, s.nome_secretaria HAVING AVG(sv.salario) > (SELECT AVG(salario) FROM servidores) ORDER BY media_salarial DESC;

Link permanente: /questoes/qg747465