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