Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resolução Exercício - Vendas percentuais por tamanho

SELECT
    t1.tamanho AS tamanho
,	t1.ano AS ano
, 	t1.vendas_totais_tamanho AS vendas_totais_tamanho
,	(t1.vendas_totais_tamanho/t2.vendas_totais_ano) * 100 AS percentual
FROM (
    SELECT
        p.TAMANHO AS tamanho
    ,	YEAR(n.DATA_VENDA) AS ano
    ,	SUM(i.QUANTIDADE * i.PRECO) AS vendas_totais_tamanho
    FROM tabela_de_produtos AS p
    LEFT JOIN itens_notas_fiscais AS i ON p.CODIGO_DO_PRODUTO = i.CODIGO_DO_PRODUTO
    INNER JOIN notas_fiscais AS n ON i.NUMERO = n.NUMERO
    WHERE 1=1
    AND YEAR(n.DATA_VENDA) = 2016
    GROUP BY
        p.TAMANHO
    ,	YEAR(n.DATA_VENDA)
) AS t1
INNER JOIN (
    SELECT
        YEAR(n.DATA_VENDA) AS ano
    ,	SUM(i.QUANTIDADE * i.PRECO) AS vendas_totais_ano
    FROM tabela_de_produtos AS p
    LEFT JOIN itens_notas_fiscais AS i ON p.CODIGO_DO_PRODUTO = i.CODIGO_DO_PRODUTO
    INNER JOIN notas_fiscais AS n ON i.NUMERO = n.NUMERO
    WHERE 1=1
    AND YEAR(n.DATA_VENDA) = 2016
    GROUP BY
        YEAR(n.DATA_VENDA)
) AS t2 ON t1.ano = t2.ano
ORDER BY
    t1.vendas_totais_tamanho DESC
;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Oi, Carlos! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você estruturou bem a separação entre o total por tamanho e o total geral do ano, usando subqueries e depois unindo tudo para calcular o percentual.
Dá para notar o bom entendimento de agregações e de como organizar consultas mais complexas. O uso do YEAR(n.DATA_VENDA) tanto no agrupamento quanto no filtro, também está consistente, mantendo assim, a coerência no resultado.

Uma dica simples para o futuro é usar a função ROUND para limitar as casas decimais do percentual, deixando o resultado mais legível. Veja este exemplo:


SELECT 
    100.0 * vendas / total AS percentual,
    ROUND(100.0 * vendas / total, 2) AS percentual_formatado
FROM tabela;

Esse codigo calcula o percentual e depois arredonda para duas casas decimais, facilitando a leitura dos dados no resultado.

Como você aplicaria esse tipo de cálculo em outros cenarios de analise de dados?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado pela dica, Monalisa. Vou aderi-la em próximas ocasiões parecidas.