Questão de Banco de Dados — Oracle — FCC 2025
- Código
- fc074750
- Banca
- FCC
- Órgão
- TRT - 15ª Região (SP)
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação
- A

- B

- C

- D

- E






GabaritoA — [imagem]
Gabarito: letra A. A consulta correta deve filtrar os registros antes do agrupamento (usando WHERE), agrupar por id_vara, aplicar a restrição de contagem após o agrupamento (usando HAVING) e ordenar o resultado final pelo valor total de forma decrescente (DESC).
Para resolver esta questão, é fundamental observar a ordem lógica de execução de uma instrução SQL com cláusulas de agregação:
FROM: identifica a tabela de origem (tprocessos).
WHERE: filtra as linhas individuais antes de qualquer agregação (neste caso, data_abertura < '2020-01-01').
GROUP BY: agrupa os dados restantes por id_vara.
HAVING: filtra os grupos formados (aqui, COUNT(*) > 100).
ORDER BY: ordena o conjunto final (aqui, SUM(valor_processo) DESC).
A alternativa A segue exatamente esta sintaxe, garantindo que apenas as varas com mais de 100 processos abertos no período especificado sejam retornadas e ordenadas corretamente.
Esta alternativa está correta pois respeita a ordem sintática do SQL: o WHERE filtra as datas, o GROUP BY organiza por vara, o HAVING impõe a restrição de quantidade sobre os grupos e o ORDER BY realiza a ordenação decrescente pelo valor total.
O erro reside na ordem das cláusulas. O HAVING deve vir após o GROUP BY e antes do ORDER BY. Colocar o ORDER BY antes do HAVING viola a sintaxe padrão do SQL.
Utiliza um formato de data não padrão ('2020-JAN-01') e, mais importante, o ORDER BY está incorreto ao tentar ordenar por COUNT(valor_total), além de não especificar a ordenação decrescente (DESC), o que é exigido pelo enunciado.
Esta alternativa falha ao omitir a cláusula HAVING, que é indispensável para filtrar as varas que possuem mais de 100 processos. Sem ela, a consulta retornaria todas as varas, independentemente da quantidade de processos.
O erro está na cláusula HAVING. O enunciado exige filtrar varas com mais de 100 processos, mas a alternativa aplica o filtro sobre o valor total (SUM(valor_processo) > 100000), o que altera a regra de negócio solicitada.
Ao lidar com consultas de agregação, lembre-se da sequência: WHERE filtra linhas (antes de agrupar), GROUP BY agrupa, HAVING filtra grupos (após agrupar) e ORDER BY ordena o resultado final. Se a questão pedir filtro por quantidade de registros, o HAVING é obrigatório.
Link permanente: /questoes/fc074750