← Questões de Banco de Dados

Banco de Dados · FGV · 2025

Questão comentada de Banco de Dados

Observe a inserção dos registros pelo seguinte script SQL. INSERT INTO Parte (ParteID, idade) VALUES (1 ,17); INSERT INTO Parte (ParteID, idade) VALUES (2 ,16); INSERT INTO Processo (processoID, data_audiencia, valor_causa) VALUES (1 ,'2025-02-05',1000); INSERT INTO Processo (processoID, data_audiencia, valor_causa) VALUES (2 ,'2025-10-05',2000); INSERT INTO ProcessoParte (processoID, parteid) VALUES (1 ,1); INSERT INTO ProcessoParte (processoID, parteid) VALUES (2 ,2); No PostgreSQL, para consultar os Processos (Processos) que envolvem partes menores que 18 anos, por ordem de maior Valor de Causa (valor_causa), cuja Audiência (data_audiencia) está agendada para os próximos 30 dias, deve-se executar o comando SQL:

Gabarito: A

A questão cobra uma consulta com junção entre três tabelas: Parte, ProcessoParte e Processo. A lógica é simples: primeiro você identifica as partes menores de 18 anos, depois encontra os processos vinculados a essas partes e, por fim, filtra os processos cuja data de audiência esteja dentro dos próximos 30 dias. Em SQL, isso normalmente é feito com JOIN entre as tabelas e um filtro de faixa de datas usando NOW() e INTERVAL, recurso bem típico do PostgreSQL. O ponto central aqui é não se perder no caminho: a idade está em Parte, o vínculo entre parte e processo está em ProcessoParte e os dados do processo estão em Processo. Sem essas três peças, a consulta fica incompleta ou errada. Além disso, para ordenar por maior valor da causa, usa-se ORDER BY p.valor_causa DESC. O gabarito A está correto porque faz exatamente essa amarração: junta Parte, ProcessoParte e Processo, filtra idade menor que 18, restringe a audiência aos próximos 30 dias com BETWEEN NOW()::DATE AND NOW()::DATE + INTERVAL '30 days', e ordena por valor_causa em ordem decrescente. Em PostgreSQL, essa forma de somar intervalo de tempo é perfeitamente válida e muito cobrada. Um detalhe importante: não há necessidade de SUM, porque a pergunta pede os processos, não a soma de valores. Também não há motivo para agrupar se cada processo já aparece uma vez no resultado. Em prova da FGV, desconfie de alternativas com excesso de enfeite SQL: às vezes elas parecem sofisticadas, mas estão só confundindo o caminho.

Continue treinando

Questões relacionadas