Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2026

Banco de DadosSQL
Código
ce229668
Banca
CESPE / CEBRASPE
Órgão
TCE-RN
Ano
2026
Nível
Superior
Cargo
Auditor de Controle Externo - Especialidade: Tecnologia da Informação
A partir das informações apresentadas e do trecho de código SQL precedente, julgue o item a seguir.No contexto de uma arquitetura de inteligência da informação para auditoria de dados, a consulta SQL apresentada utiliza a função de janela ROW_NUMBER() para segmentar os registros por contrato e ordená-los cronologicamente de forma decrescente; essa abordagem é eficaz para identificar a versão mais recente de cada contrato em uma tabela de CDC, sob a condição de que a coluna data_atualizacao tenha granularidade suficiente para garantir uma ordenação unívoca, evitando que registros distintos de um mesmo contrato apresentem o exato mesmo marcador temporal.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Função ROW_NUMBER() e tabelas CDC

SE LIGUE NESSA!

Esta questão depende de um texto-base não disponível, mas a análise conceitual pode ser feita independentemente. A afirmativa é auto-contida e descreve corretamente o uso de ROW_NUMBER() para identificar a versão mais recente de cada contrato.

CERTO. A descrição está correta. A função de janela ROW_NUMBER() atribui um número sequencial a cada linha dentro de uma partição, com a ordenação especificada. Ao particionar por contrato (PARTITION BY contrato) e ordenar por data_atualizacao DESC, cada linha recebe um número que reflete sua posição cronológica dentro do grupo. A linha com ROW_NUMBER = 1 é a mais recente (ou a mais antiga, dependendo da ordenação). Para identificar a versão mais recente, a ordenação decrescente é a adequada.

A ressalva sobre a granularidade da coluna data_atualizacao é pertinente. Se dois registros do mesmo contrato tiverem o exato mesmo timestamp, a ordenação não será unívoca — o ROW_NUMBER() atribuirá valores arbitrários para esses empates, podendo não garantir qual é a versão "efetivamente" mais recente. Portanto, a abordagem é eficaz desde que a coluna temporal tenha resolução suficiente (ex.: até milissegundos) para diferenciar cada atualização.

Gabarito: Certo (C).

Link permanente: /questoes/ce229668