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