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

多个groupby 无法调整时,一般会借助使用窗口函数。

对每个类的和再sum就相当于对所有的求和

聚合函数和group by 是搭配使用的

窗口函数中可以没有orderby