--先把销售金额和利润率求出来,然后排序筛选(一定排序是category_id) with tiaojian as ( select py.product_id, py.product_name, py.category_id, sum(sales_amount) as sales_amount, sum(sales_amount-cost_amount)/sum(sales_amount) as profit_rate from product_category py inner join sales_and_profit st on py.product_id=st.product_id group by py.product_id ) select product_id, product_name, category_id, sales_amount, profit_rate from( select product_id, product_name, category_id, sales_amount, round(profit_rate,2) as profit_rate, row_number()over(partition by category_id order by sales_amount desc) as pt from tiaojian ) as t where t.pt<=3 and profit_rate>0.2 order by category_id,sales_amount desc,product_id



京公网安备 11010502036488号