1
resposta

[Sugestão] Minha resolução da atividade

WITH qtde_total_geral AS (
    SELECT
        to_char(nf.data_venda, 'YYYY')        AS ano,
        SUM(inf.quantidade)                   AS quantidade_total_geral
    FROM
             notas_fiscais nf
        INNER JOIN itens_notas_fiscais inf ON nf.numero = inf.numero
    WHERE
        to_char(nf.data_venda, 'YYYY') = '2016'
    GROUP BY
        to_char(nf.data_venda, 'YYYY')
), qtde_total AS (
    SELECT
        inf.codigo_do_produto,
        to_char(nf.data_venda, 'YYYY')        AS ano,
        SUM(inf.quantidade)                   AS quantidade
    FROM
             notas_fiscais nf
        INNER JOIN itens_notas_fiscais inf ON nf.numero = inf.numero
    WHERE
        to_char(nf.data_venda, 'YYYY') = '2016'
    GROUP BY
        inf.codigo_do_produto,
        to_char(nf.data_venda, 'YYYY')
), produtos AS (
    SELECT
        codigo_do_produto,
        nome_do_produto,
        tamanho
    FROM
        tabela_de_produtos
)
SELECT
    p.tamanho,
    qt.ano,
    SUM(qt.quantidade)                                                              AS quantidade_total,
    round((SUM(qt.quantidade) / qtg.quantidade_total_geral) * 100, 2)               AS percentual_participacao
FROM
         qtde_total qt
    INNER JOIN qtde_total_geral  qtg ON qt.ano = qtg.ano
    INNER JOIN produtos          p ON qt.codigo_do_produto = p.codigo_do_produto
GROUP BY
    p.tamanho,
    qt.ano,
    qtg.quantidade_total_geral
ORDER BY
    4 DESC;
1 resposta

Oi Thiago, tudo bem?

Obrigada por compartilhar sua resolução com o fórum! Mandou bem.

Continue se dedicando.

Abraços.