Questão nº 36
Questão de Tecnologia da Informação · FGV STN 2024 (nº 36)
No contexto da tabela IPCA apresentada, analise os dois comandos SQL a seguir.
select mes, ano, indice
from IPCA i
where indice
= (select min(indice)
from IPCA ii
where ii.mes = i.mes)
order by ano, mês
select ano, indice
from IPCA i
where indice
= (select min(indice)
from IPCA ii
where ii.ano = i.ano)
order by ano
Sobre a execução desses comandos, assinale a afirmativa correta.
- AO primeiro comando produz no máximo 12 linhas, e o segundo, no máximo 23 linhas.
- BO primeiro comando produz no mínimo 12 linhas, e o segundo, no máximo 23 linhas.
- CO primeiro comando produz no mínimo 12 linhas, e o segundo, no mínimo 23 linhas. (alternativa correta)
- DOs dois comandos produzem 276 linhas, com diferenças nos índices.
- EOs dois comandos produzem os mesmos resultados.
Resposta comentada
Gabarito Alternativa C
Um subconsulta correlacionada é uma consulta interna que depende de valores da consulta externa para ser executada, processando-se uma vez para cada linha da consulta externa. A função MIN() encontra o menor valor em um conjunto de dados.
Conceito-chave: As consultas buscam os registros onde o indice é o menor dentro de um grupo específico (mês ou ano). Como um valor mínimo pode ocorrer em mais de um registro dentro do mesmo grupo, o resultado terá pelo menos um registro para cada grupo, podendo ter mais.
(A) Incorreta: O primeiro comando produz no mínimo 12 linhas, não no máximo. O segundo comando produz no mínimo 23 linhas, não no máximo.
(B) Incorreta: Embora o primeiro comando produza no mínimo 12 linhas, o segundo comando produz no mínimo 23 linhas, não no máximo.
(C) Correta:
- Primeiro comando: Para cada um dos 12 meses, ele encontra o
indicemínimo daquele mês (considerando todos os anos). Haverá pelo menos uma linha para cada mês que atenda a essa condição. Portanto, o número mínimo de linhas é 12 (12 meses * 1 linha por mês). - Segundo comando: Para cada um dos 23 anos (de 2000 a 2022), ele encontra o
indicemínimo daquele ano (considerando todos os meses). Haverá pelo menos uma linha para cada ano que atenda a essa condição. Portanto, o número mínimo de linhas é 23 (23 anos * 1 linha por ano).
(D) Incorreta: 276 linhas é o total de linhas da tabelaIPCA. As consultas filtram os dados, retornando apenas as linhas com o índice mínimo por mês ou por ano, o que é um subconjunto do total.
(E) Incorreta: Os comandos filtram por critérios diferentes (mesvsano) e selecionam colunas diferentes no resultado final (mes, ano, indicevsano, indice), portanto, produzem resultados distintos.
Fonte: FGV STN 2024 Auditor Federal de Finanças e Controle - Tecnologia da Informação (Operação e Infraestrutura) (Caderno Tipo 1). Reproduzida para fins de estudo.
