with a as(
select
product_id,
product_name,
category_id,
sales_amount,
round((sales_amount-cost_amount)/sales_amount,2) as profit_rate,
rank() over(partition by category_id order by sales_amount desc) as rk
from product_category join sales_and_profit using(product_id)
)
select
product_id,
product_name,
category_id,
sales_amount,
profit_rate
from a
where profit_rate>=0.2 and rk<=3
order by category_id,sales_amount desc,product_name;

京公网安备 11010502036488号