FC ConcursosFC Concursos

Questão FC369481

ATENÇÃO: use a tabela relacional IPCA a seguir para responder à questão. Tabela IPCA indice ano mes 0,56 2023 12 0,28 2023 11 0,24 2023 10 . . . . . . . . . 0,2 2003 7 -0,15 2003 6

Linguagem SQL

FGV · 2024

ATENÇÃO: use a tabela relacional IPCA a seguir para responder à questão.

 

Tabela IPCA

indice

ano

mes

0,56

2023 12

0,28

2023 11

0,24

2023 10

. . .

. . .

. . .

0,2

2003 7

-0,15

2003 6

. . .

. . .

. . .

2,25

2003 1
2,1 2002 12
3,02 2002 11

. . .

. . .

. . .

0,57 2001 1

A instância da tabela contém os valores do índice IPCA para todos os meses dos anos de 2001 até 2023. Os valores pontilhados representam a continuidade mensal da série. Todas as colunas são numéricas, e não aceitam valores nulos.

 

No contexto da tabela IPCA apresentada, o comando SQL a seguir produz o índice acumulado a cada ano, que é obtido pela multiplicação acumulativa de um conjunto de termos da forma (1 + i/100), onde i é o valor do índice em cada um dos doze meses de cada ano.

 

select
   Y.ano,
    (1+ m1.indice/100) * (1+ m2.indice/100) *
    (1+ m3.indice/100) * (1+ m4.indice/100) *
    (1+ m5.indice/100) * (1+ m6.indice/100) *
    (1+ m7.indice/100) * (1+ m8.indice/100) *
    (1+ m9.indice/100) * (1+ m10.indice/100) *
    (1+ m11.indice/100) * (1+ m12.indice/100) índice


from IPCA m1, IPCA m2, IPCA m3, IPCA m4,
        IPCA m5, IPCA m6, IPCA m7, IPCA m8,
        IPCA m9, IPCA m10, IPCA m11, IPCA m12,
        . . . . . . . . Y
where
        m12.mes =12 and m11.mes=11 and m10.mes=10
 and m9.mes =9 and m8.mes =8 and m7.mes=7
 and m6.mes =6 and m5.mes =5 and m4.mes=4
 and m3.mes =3 and m2.mes =2 and m1.mes=1


 and m12.ano = m11.ano and m11.ano = m10.ano
 and m10.ano = m9.ano and m9.ano = m8.ano
 and m8.ano = m7.ano and m7.ano = m6.ano
 and m6.ano = m5.ano and m5.ano = m4.ano
 and m4.ano = m3.ano and m3.ano = m2.ano
 and m2.ano = m1.ano
 and m1.ano = Y.ano
order by 1

 

Assinale o trecho que deve substituir o trecho pontilhado do comando acima, de modo que o cálculo e a apresentação sejam produzidos corretamente.

  1. (select ano - 2021 as ano from IPCA)
  2. (select ano from IPCA)
  3. (select distinct ano from IPCA)
  4. (select distinct ano, mes from IPCA)
  5. select distinct ano from IPCA
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A escolha (select distinct ano from IPCA) funciona como a subconsulta que gera a lista de valores únicos de ano (por exemplo, 2001–2023) para a variável alias Y.

Com isso, cada linha resultante de Y representa um ano apenas uma vez, permitindo que as condições do WHERE (por exemplo, m1.ano = Y.ano) associem corretamente os doze aliases m1..m12 aos meses daquele ano.

Sem o distinct haveria múltiplas repetições de um mesmo ano (uma por mês), o que geraria combinações indesejadas. A subconsulta evita esse efeito e torna o agrupamento por ano explícito.

Assim a expressão calculada corresponde ao índice acumulado anual \( \prod_{m=1}^{12}\big(1 + i_m/100\big) \), avaliada para cada ano retornado pela subconsulta.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo