Primeiramente esse é o código principal
SELECT
TP.TAMANHO,
EXTRACT( YEAR FROM NF.DATA_VENDA) AS ANO,
SUM(ITEM.QUANTIDADE) AS QUANTIDADE_TOTAL,
ROUND((SUM(ITEM.QUANTIDADE) / MAX(QUANTIDADE_TOTAL_ANUAL.QUANTIDADE_TOTAL)) * 100, 2) || '%' AS PORCENTAGEM
FROM
TABELA_DE_PRODUTOS TP
INNER JOIN
ITENS_NOTAS_FISCAIS ITEM
ON
TP.CODIGO_DO_PRODUTO = ITEM.CODIGO_DO_PRODUTO
INNER JOIN
NOTAS_FISCAIS NF
ON
ITEM.NUMERO = NF.NUMERO
INNER JOIN
(SELECT
EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO,
SUM(ITEM.QUANTIDADE) AS QUANTIDADE_TOTAL
FROM
NOTAS_FISCAIS NF
INNER JOIN
ITENS_NOTAS_FISCAIS ITEM
ON
NF.NUMERO = ITEM.NUMERO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
GROUP BY EXTRACT(YEAR FROM NF.DATA_VENDA)) QUANTIDADE_TOTAL_ANUAL
ON
EXTRACT(YEAR FROM NF.DATA_VENDA) = QUANTIDADE_TOTAL_ANUAL.ANO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
GROUP BY TP.TAMANHO, EXTRACT(YEAR FROM NF.DATA_VENDA)
ORDER BY QUANTIDADE_TOTAL DESC;
E este é o código para achar o total da vendas
SELECT
EXTRACT(YEAR FROM NF.DATA_VENDA) AS ANO,
SUM(ITEM.QUANTIDADE) AS QUANTIDADE_TOTAL
FROM
NOTAS_FISCAIS NF
INNER JOIN
ITENS_NOTAS_FISCAIS ITEM
ON
NF.NUMERO = ITEM.NUMERO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA) = 2016
GROUP BY EXTRACT(YEAR FROM NF.DATA_VENDA);
Segue resultado final