Em um banco de dados Oracle 19c, aberto e funcionando em con...
- 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, é:
Comentários
Veja os comentários dos nossos alunos
Selecionar, da tabela , as varas () que:
- Tenham processos abertos antes de 01/01/2020;
- Possuam mais de 100 processos;
- Mostrar quantidade de processos e soma de valores;
- Ordenar por valor total em ordem decrescente.
✅ a) CORRETA
WHERE filtra apenas processos abertos antes de 2020.
GROUP BY agrupa por id_vara.
HAVING COUNT(*) > 100 aplica corretamente o filtro sobre agregação.
ORDER BY SUM(valor_processo) DESC ordena pelo valor total.
❌ b) INCORRETA
Erro de ordem: HAVING deve vir antes de ORDER BY.
A cláusula HAVING pode ser usada para definir uma condição para um agrupamento com GROUP BY:
SELECT colunas FROM nome_da_tabela WHERE condição
GROUP BY coluna
HAVING condição;
❌ Inválido em Oracle e na maioria dos SGBDs.
❌ c) INCORRETA
data_abertura < '2020-JAN-01' é válida, mas menos clara do que o formato padrão ISO ('2020-01-01').
COUNT(valor_total) é inválido: valor_total é alias, não pode ser usado aqui.
❌ Erro na expressão do ORDER BY.
❌ d) INCORRETA
Faltam dois filtros essenciais:
- HAVING COUNT(*) > 100 não aparece.
valor_total é um alias, não pode ser usado diretamente em ORDER BY em alguns contextos (especialmente no Oracle).
❌ Não atende ao requisito de quantidade mínima de processos.
❌ e) INCORRETA
Aplica o filtro errado: o enunciado exige COUNT(*) > 100, e não filtro por soma de valores.
❌ Lógica diferente da exigida.
Fonte: ChatGPT.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo