Na minha primeira prática percebi que se colocar o 100.0 após as divisão o resultado dá tudo 0.0%, então tem que colocar o 100.0 antes da divisão, por quê isso acontece?
with Total_Vendas_Categoria AS (SELECT c.nome_categoria AS Nome_Categoria, COUNT(iv.produto_id) AS Total_Vendas_Categoria
from itens_venda iv
JOIN vendas v ON v.id_venda = iv.venda_id
JOIN produtos p on p.id_produto = iv.produto_id
JOIN categorias c on c.id_categoria = p.categoria_id
WHERE strftime('%Y', v.data_venda) = '2022'
GROUP BY Nome_Categoria
), Total_Vendas AS (SELECT COUNT(iv.produto_id) AS Total_Vendas
from itens_venda iv
JOIN vendas v ON v.id_venda = iv.venda_id
WHERE strftime('%Y', v.data_venda) = '2022'
)
SELECT Nome_Categoria, ROUND(**100.0*Total_Vendas_Categoria/ Total_Vendas**, 2) || '%' AS Porcentagem
FROM Total_Vendas_Categoria, Total_Vendas
GROUP BY Nome_Categoria
;