Um gerente executivo de um grande banco deseja estudar o inv...

Próximas questões
Com base no mesmo assunto
Q3057472 Banco de Dados

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?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a letra D.

Para resolver esta questão, é importante compreender como funcionam consultas SQL e, particularmente, o uso do GROUP BY e a função de agregação SUM() em um contexto de processamento analítico em tempo real, conhecido como OLAP (On-line Analytical Processing).

O problema exige que se agreguem os valores investidos por agência, somando o valor total investido por todos os clientes em cada agência. Para isso, estamos lidando com múltiplas tabelas, cada uma representando diferentes aspectos do investimento e da estrutura do banco.

Vamos analisar cada alternativa:

A - Errada: Esta alternativa não usa a função de agregação SUM() para somar os valores investidos. Assim, ela retornaria apenas linhas individuais de investimento, sem agregar o total por agência.

B - Errada: Apesar de utilizar a função SUM(), o agrupamento está sendo feito por c.idCliente, o que não atende ao requisito de agrupar por agência. Isso resultaria em múltiplas linhas por agência, uma para cada cliente.

C - Errada: Esta alternativa possui um erro de junção ao usar c.idCliente = i.idConta. Aqui, a intenção correta seria usar c.idConta = i.idConta. Esse erro de chave leva a resultados incorretos.

D - Correta: Esta consulta soma corretamente os valores investidos usando SUM(i.valorInvestido) e agrupa os resultados por a.nomeAgencia. A junção também está correta, ligando Agencia, Conta e Investimento adequadamente.

E - Errada: Semelhante à alternativa A, esta alternativa falha ao não utilizar a função de agregação, resultando em listagens de investimentos individuais ao invés de um total agregado por agência.

No contexto de OLAP, a capacidade de agregar e resumir dados é essencial, e a alternativa D realiza isso de forma eficiente e correta.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo