Questão FC369479
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, analise o script SQL de criação da view “v1”.
create view v1 as
select ano, mes, salto from (
select y.ano, y.mes, y.indice anterior,
x.indice novo, y.indice - x.indice salto
from ipca x, ipca y
where
((x.ano = y.ano and y.mes = x.mes + 1)
Or (y.ano = x.ano + 1 and
y.mes = 1 and x.mes = 12))
) x
Admitindo que pode haver empates, assinale o comando SQL que emprega corretamente a view v1 para produzir o ano/mês que teve o maior salto positivo do índice em relação ao mês anterior, e o valor do salto.
- select * from v1
where salto = max(salto)
- select ano, mes, salto from v1
where salto = (select max(salto) from v1)
- select ano, mes, salto from v1
- select ano, mes, salto from v1
where salto = max(v1.salto)
- select ano, mes, salto from v1 where salto > 0
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A consulta select ano, mes, salto from v1 where salto = (select max(salto) from v1) utiliza corretamente a view v1 para retornar o(s) mês(es) com o maior aumento absoluto do índice em relação ao mês anterior.
A subconsulta (select max(salto) from v1) calcula a maior diferença \( \max(salto) \) presente na tabela derivada; em seguida a cláusula where filtra todas as linhas cuja coluna salto seja igual a esse valor máximo. Assim, se houver empates, todos os anos/meses com o mesmo maior salto serão retornados.
Essa abordagem é simples e eficiente: usa agregação para obter o valor máximo e igualdade para selecionar as linhas correspondentes, sem necessidade de junções adicionais nem de operações sobre índices originais.
Conteúdo do catálogo FC Concursos · Atualizado em