Considerando a execução de um script PL/SQL para gerar rela...

Próximas questões
Com base no mesmo assunto
Q3035485 Banco de Dados
Considerando a execução de um script PL/SQL para gerar relatórios de vendas mensais, que necessita agrupar vendas por mês e calcular o total vendido, supondo que a tabela Vendas inclua as colunas VendaID, DataVenda e ValorVenda, qual seria a estratégia correta para realizar este cálculo?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa A é a correta.

Para resolver esta questão, é importante compreender como o PL/SQL interage com a linguagem SQL para realizar operações de cálculo e agrupamento de dados em tabelas. A questão trata de calcular o total de vendas mensais a partir de uma tabela chamada Vendas, que contém as colunas VendaID, DataVenda, e ValorVenda.

Alternativa A: Esta é a estratégia correta. Aqui, utilizamos a função SUM() para calcular o total de vendas, e a função TO_CHAR() para extrair o mês da data de cada venda. Quando aplicamos TO_CHAR(DataVenda, 'MM'), conseguimos agrupar as vendas por mês que é exatamente o que a questão pede. Esta abordagem é eficiente pois utiliza funções SQL diretamente, minimizando a complexidade e o tempo de execução.

Alternativa B: Nesta alternativa, é sugerido o uso de um LOOP para iterar sobre cada registro e acumular valores. Apesar de ser uma solução possível, ela não é a mais eficiente. A utilização de loops pode ser mais lenta quando trabalhamos com grandes volumes de dados, pois a operação é realizada registro por registro, ao invés de processar os dados de forma agrupada.

Alternativa C: Criar uma função PL/SQL que receba o mês como parâmetro e retorne o total de vendas para aquele mês não é a abordagem mais eficaz para esta questão. Embora funcione, ela não usa o agrupamento de SQL da forma mais direta e pode requerer múltiplas chamadas para cobrir todos os meses, ao contrário de uma única query que resolve tudo de uma só vez.

Alternativa D: Esta alternativa propõe o uso de um cursor com um acumulador dentro de um procedimento armazenado. Embora esta abordagem seja técnica e válida, ela é mais complexa e menos eficiente do que simplesmente usar SQL para calcular e agrupar dados. Cursors são úteis em algumas situações específicas, mas para este caso, onde precisamos de um simples agrupamento e soma, são desnecessários.

Em resumo, a melhor prática é utilizar o poder do SQL para operações de agregação e agrupamento, o que torna a alternativa A a mais adequada para esta questão.

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