with t as (
select category, age_group, sum(quantity*price) as total_sales_amount
from products a
join sales b on a.product_id=b.product_id
join customer_info c on b.sale_id=c.sale_id
group by category, age_group
), t1 as (
select category, sum(total_sales_amount) as sum_total_sales_amount
from t
group by category
)
select t.category as product_category, t.age_group, total_sales_amount,
round(t.total_sales_amount/t1.sum_total_sales_amount, 2) as purchase_percentage
from t join t1 on t.category=t1.category
order by t.category, age_group