Questão de Banco de Dados — Banco de Dados — FGV 2023
- Código
- fg061593
- Banca
- FGV
- Órgão
- Câmara dos Deputados
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista Legislativo - Informática Legislativa - Tarde
- A

- B

- C

- D

- E






GabaritoE — [imagem]
Gabarito: letra E (conforme gabarito oficial). A questão pede um comando SQL que, dada uma tabela TT com uma coluna N contendo potências de 2 (com lacunas), retorne os intervalos de expoentes ausentes. O exemplo mostra que se a tabela tiver {4,16,32,256,1024} (expoentes 2,4,5,8,10), os intervalos de expoentes faltantes são [3,3], [6,7], [9,9].
A solução envolve: (1) gerar a sequência completa de expoentes desde o mínimo (1) até o máximo presente na tabela; (2) identificar os expoentes que não estão na tabela (usando um LEFT JOIN com a tabela de expoentes existentes); (3) agrupar expoentes consecutivos em intervalos, usando a técnica de "islands" com ROW_NUMBER().
O comando correto (alternativa E) provavelmente utiliza uma CTE recursiva (ou uma tabela de números) para gerar a sequência de expoentes, e depois aplica a lógica de agrupamento. Como as alternativas são imagens e não foram transcritas, não é possível analisar cada uma individualmente, mas o gabarito oficial indica que apenas a alternativa E implementa corretamente essa lógica.
Para resolver problemas de lacunas numéricas em SQL, use uma CTE (ou tabela de números) para gerar todos os valores possíveis e depois um LEFT JOIN com os dados existentes. Para agrupar consecutivos, calcule uma diferença entre o valor e um ROW_NUMBER() ordenado.
Gabarito: letra E
Link permanente: /questoes/fg061593