Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FCC 2025

Banco de DadosOracle
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
Em um banco de dados Oracle 19c, aberto e funcionando em condições ideais, existe uma tabela rprocessos com dados válidos, que tem a seguinte estrutura:- id_processo (número único de identificação do processo)- data_abertura (data em que o processo foi aberto)- id_vara (identificador da vara do trabalho onde o processo tramita)- valor_processo (valor monetário associado ao processo)O comando SQL que lista 0 id_vara, O número total de processos por vara e o valor total dos processos, em ordem decrescente, somente das varas que possuem mais de 100 processos abertos antes de 1º de janeiro de 2020, é:
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoA — [imagem]

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL — Agrupamento e Filtragem de Dados

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:

  1. FROM: identifica a tabela de origem (tprocessos).

  2. WHERE: filtra as linhas individuais antes de qualquer agregação (neste caso, data_abertura < '2020-01-01').

  3. GROUP BY: agrupa os dados restantes por id_vara.

  4. HAVING: filtra os grupos formados (aqui, COUNT(*) > 100).

  5. 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.

  1. 1FROM (tabela)
  2. 2WHERE (filtra linhas)
  3. 3GROUP BY (agrupa)
  4. 4HAVING (filtra grupos)
  5. 5ORDER BY (ordena)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

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.

Alternativa B — ❌ Incorreta

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.

Alternativa C — ❌ Incorreta

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.

Alternativa D — ❌ Incorreta

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.

Alternativa E — ❌ Incorreta

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.

PEGA ESSA DICA!

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