SELECT
CONSULTA_RELATORIO.TAMANHO,
CONSULTA_RELATORIO.QUANTIDADE_ANO,
CONSULTA_RELATORIO.TOTAL_GERAL,
ROUND((CONSULTA_RELATORIO.QUANTIDADE_ANO/CONSULTA_RELATORIO.TOTAL_GERAL*100),2) PERC_VENDA_ANO_TAMANHO
FROM
(SELECT TP.TAMANHO,EXTRACT(YEAR FROM NF.DATA_VENDA),SUM(INF.QUANTIDADE) QUANTIDADE_ANO,
(
select total.total_geral from
(select
extract(year from nf.data_venda) ano,
sum(inf.quantidade) total_geral
from notas_fiscais nf
inner join itens_notas_fiscais inf on inf.numero=nf.numero
where extract(year from nf.data_venda)=2016
group by extract(year from nf.data_venda)) total
) TOTAL_geral
FROM TABELA_DE_PRODUTOS TP
INNER JOIN ITENS_NOTAS_FISCAIS INF ON inf.codigo_do_produto=tp.codigo_do_produto
INNER JOIN NOTAS_FISCAIS NF ON NF.NUMERO=INF.NUMERO
WHERE EXTRACT(YEAR FROM NF.DATA_VENDA)=2016
GROUP BY TP.TAMANHO,EXTRACT(YEAR FROM NF.DATA_VENDA)
ORDER BY SUM(INF.QUANTIDADE)DESC) CONSULTA_RELATORIO;