Criar codigo SQL que mostre a participação percentual de VALOR VENDA TOTAL por nome de produto por ano.
Criar codigo SQL que mostre a participação percentual de VALOR VENDA TOTAL por nome de produto por ano.
Olá Erica, tudo bem?
Desde já peço desculpas pela demora em obter um retorno.
Para calcular a participação percentual do VALOR VENDA TOTAL por nome de produto por ano, você pode usar uma consulta SQL que envolva uma operação de agregação e uma junção de tabelas. Utilizarei os mesmos nomes de coluna que você nomeou.
SELECT
EXTRACT(YEAR FROM F.Dia) AS Ano,
P.Nome AS NomeProduto,
SUM(F.Valor_venda_total) AS TotalVendaProduto,
SUM(F.Valor_venda_total) / SUM(SUM(F.Valor_venda_total)) OVER(PARTITION BY EXTRACT(YEAR FROM F.Dia)) * 100 AS ParticipacaoPercentual
FROM
Fato F
INNER JOIN
Produtos P ON F.Produto_Codigo = P.Codigo
GROUP BY
EXTRACT(YEAR FROM F.Dia),
P.Nome
ORDER BY
EXTRACT(YEAR FROM F.Dia),
P.Nome;
No código acima usamos Utilizamos a função EXTRACT(YEAR FROM F.Dia)
para extrair o ano da data na coluna "Dia
" da tabela "Fato
". Após isso, realizamos uma junção (JOIN
) entre a tabela "Fato" e a tabela "Produtos" usando a chave estrangeira "Produto_Codigo
".
Para fazer a agregação, aplicamos a função de agregação SUM(F.Valor_venda_total)
para calcular o total de vendas de cada produto em cada ano.
Em seguida, usamos a função de janela SUM(SUM(F.Valor_venda_total)) OVER(PARTITION BY EXTRACT(YEAR FROM F.Dia))
para calcular o total de vendas para cada ano individualmente. Isso nos permite calcular a participação percentual.
Por fim, calculamos a participação percentual dividindo o total de vendas de cada produto pelo total de vendas do ano correspondente e multiplicamos por 100.
Espero ter ajudado .
Caso surja alguma dúvida, fico à disposição.
Abraços e bons estudos!