FC ConcursosFC Concursos

Questão FC296066

Nesse contexto, considerando-se o uso do banco de dados MySQL, que consulta SQL fornece corretamente os dados para a tela inicial desejada?

Questões sem classificação de assunto (TI - Banco de Dados)

CESGRANRIO · 2024

Um gerente executivo de um grande banco deseja estudar o investimento feito pelos clientes pessoas físicas, considerando o valor investido em reais, com detalhamento por tipo de investimento e agência. Para isso, encomendou um painel OLAP, no qual a tela inicial deve ser o valor, em reais, da soma do investimento de todos os clientes de cada agência, listados por agência, agregando todos os tipos de investimento, na forma de um relatório em tela com duas colunas: Nome da Agência e Valor Total Investido.

 

Considere que as seguintes visões estão disponíveis:

 

Agencia(idAgencia,nomeAgencia)

Cliente(idCliente,nomeCliente)

Conta(idCliente,idAgencia,idConta)

TipoInvestimento(idTipoInvestimento,nomeInvestimento)

Investimento(idConta,idTipoInvestimento,valorInvestido)

 

Nesse contexto, considerando-se o uso do banco de dados MySQL, que consulta SQL fornece corretamente os dados para a tela inicial desejada?

  1. SELECT a.nomeAgencia AS Agencia, i.valorInvestido AS ValorTotalInvestido FROM Agencia a JOIN Conta c ON a.idAgencia = c.idAgencia JOIN Investimento i ON c.idConta = i.idConta GROUP BY a.nomeAgencia;
  2. SELECT a.nomeAgencia AS Agencia, SUM(i.valorInvestido) AS ValorTotalInvestido FROM Agencia a JOIN Conta c ON a.idAgencia = c.idAgencia JOIN Investimento i ON c.idConta = i.idConta GROUP BY c.idCliente;
  3. SELECT a.nomeAgencia AS Agencia, SUM(i.valorInvestido) AS ValorTotalInvestido FROM Agencia a JOIN Conta c ON a.idAgencia = c.idAgencia JOIN Investimento i ON c.idCliente = i.idConta GROUP BY a.nomeAgencia;
  4. SELECT a.nomeAgencia AS Agencia, SUM(i.valorInvestido) AS ValorTotalInvestido FROM Agencia a JOIN Conta c ON a.idAgencia = c.idAgencia JOIN Investimento i ON c.idConta = i.idConta GROUP BY a.nomeAgencia;
  5. SELECT a.nomeAgencia AS Agencia, i.valorInvestido AS ValorTotalInvestido FROM Agencia a JOIN Conta c ON a.idAgencia = c.idAgencia JOIN Investimento i ON c.idConta = i.idConta GROUP BY a.nomeAgencia;
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A consulta usa corretamente as junções entre as tabelas relevantes: Agencia → Conta → Investimento, ligadas por ON a.idAgencia = c.idAgencia e ON c.idConta = i.idConta. Isso garante que cada investimento seja associado à sua agência.

O uso de SUM(i.valorInvestido) realiza a agregação desejada: \( \text{ValorTotalInvestido} = \sum i.valorInvestido \). Como não há agrupamento por idTipoInvestimento, a soma agrega todos os tipos de investimento por agência, atendendo ao requisito.

O GROUP BY a.nomeAgencia produz uma linha por agência com duas colunas: Agencia (apelido para a.nomeAgencia) e ValorTotalInvestido (apelido para a soma). Os aliases tornam o relatório em tela exatamente no formato solicitado.

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

Continue aprendendo