Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2022
- Código
- ce147340
- Banca
- CESPE / CEBRASPE
- Órgão
- TCE-RJ
- Ano
- 2022
- Nível
- Superior
- Cargo
- Analista de Controle Externo
- CCerto
- EErrado
GabaritoE — Errado
❌ ERRADO. O comando SQL apresentado contém dois erros que o tornam inválido: (1) a função de agregação AVG(salario) é usada na cláusula WHERE, o que é proibido, pois WHERE filtra linhas individuais antes do agrupamento; (2) não há cláusula GROUP BY c.cod_curso, necessária para que AVG(salario) seja calculada por curso. A forma correta seria:
SELECT c.cod_curso, AVG(salario)
FROM contrato c, professor p
WHERE c.cpf_professor = p.cpf_professor
GROUP BY c.cod_curso
HAVING AVG(salario) < 5000;A banca testa o conhecimento da ordem de execução do SQL: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. A função de agregação só pode aparecer na cláusula HAVING (após GROUP BY) ou no SELECT, nunca no WHERE. Portanto, a afirmativa de que a sintaxe está correta é falsa.
O candidato pode achar que AVG(salario) < 5000 funciona no WHERE, mas isso viola a regra de que WHERE não pode conter funções de agregação. A banca explora exatamente essa confusão entre filtro de linhas (WHERE) e filtro de grupos (HAVING).
❌ ERRADO.
Link permanente: /questoes/ce147340