Select UPPER(consulta_relatorio.tamanho) as TAMANHO
, consulta_relatorio.ano,consulta_relatorio.quantidade_total
, round((consulta_relatorio.quantidade_total/consulta_relatorio.quantidade_geral)*100,2) || '%' as percentual_participacao
from
(
select
tp.tamanho
,extract(year from nf.data_venda) as ano
,sum(inf.quantidade) as quantidade_total
, (
sELECT TOTAL_ANO.QUANTIDADE_GERAL FROM (SELECT
extract(year from NF.DATA_VENDA) AS ANO
,SUM(INF.QUANTIDADE) AS QUANTIDADE_GERAL
FROM
NOTAS_FISCAIS NF
INNER JOIN
ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
WHERE extract(year from nf.data_venda) = 2016
GROUP BY EXTRACT(YEAR FROM NF.DATA_VENDA))TOTAL_ANO
) AS QUANTIDADE_GERAL
from tabela_de_produtos tp
inner join
itens_notas_fiscais inf
on tp.codigo_do_produto = inf.codigo_do_produto
inner join
notas_fiscais nf
on inf.numero = nf.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;