Questão de Banco de Dados — Consultas e Comandos em SQL — FGV 2024
- Código
- fg165277
- Banca
- FGV
- Órgão
- Pref Nova Iguaçu
- Ano
- 2024
- Cargo
- AFTM (Pref N Iguaçu)
Seja um banco de dados relacional especificado em SQL de uma empresa de correspondência entre clientes, instituições financeiras e empréstimos contratados por esses clientes nessas instituições, previamente implementado em um banco de dados como a seguir:
create table tb_cliente
(
id_cliente integer primary key,
num_cpf char(11) unique,
nome varchar(50) not null,
email varchar(20),
telefone varchar(20),
endereco varchar(100),
cidade varchar(20),
estado char(2)
);
create table tb_financeira
(
id_financeira integer primary key,
razao_social varchar(30) not null,
cidade varchar(30) not null,
estado char(2) not null
);
create table tb_emprestimo
(
id_financeira integer references tb_financeira,
id_cliente integer references tb_cliente,
valor real not null check(valor > 0),
dia integer not null check(dia >= 1 and dia <= 31),
mes integer not null check(mes >= 1 and mes <= 12),
ano integer not null check(ano >= 1980 and ano <= 2100),
primary key(id_financeira, id_cliente, dia, mes, ano)
);
OBS: Neste banco de dados, cadeias de caracteres (strings) são representadas envoltas em aspas simples.
Com vistas à detecção de movimentações atípicas, um auditor desenvolveu uma consulta que identificasse médias de empréstimos em meses de 2024 que fossem destoantes do comportamento da média de empréstimos desse mesmo ano.
Para isso, ele desenvolveu a consulta a seguir, que necessita ser complementada:
select f.id_financeira, c.id_cliente, e.mes, avg(e.valor) from tb_cliente c natural join tb_emprestimo e
natural join tb_financeira f
where e.ano = 2024
group by f.id_financeira, c.id_cliente, e.mes, e.ano
having avg(e.valor) >=
( /* COMPLEMENTAR */ )
A fim de substituir o trecho da consulta, marcado com o comentário /* COMPLEMENTAR */, assinale a subconsulta que corretamente atende ao objetivo almejado pelo auditor.
- Aselect avg(e.valor) from tb_financeira f2 where e.id_cliente = c.id_cliente and f2.id_financeira = f.id_financeira group by f2.id_financeira, e.ano
- Bselect avg(e2.valor) from tb_emprestimo e2 group by e2.ano
- Cselect avg(e2.valor) from tb_emprestimo e2 where e.id_cliente = c.id_cliente and e.id_financeira = f.id_financeira and e.ano = e.ano group by f.id_financeira, e2.ano
- Dselect avg(e2.valor) from tb_emprestimo e2 where e2.id_cliente = c.id_cliente and e2.id_financeira = f.id_financeira and e2.ano = e.ano group by f.id_financeira, e2.ano
- Eselect avg(e2.valor) from tb_emprestimo where e2.id_cliente = c.id_cliente and e2.id_financeira = f.id_financeira group by f.id_financeira, e2.ano