-- 每个style_id的已经销售的数量/(每个style_id的库存量-已经销售的数量)
-- 每个style_id的GMV(就是sum(sales_price))/(吊牌价*库存数量)
with inventory_table as(
    select item_id,style_id,
    sum(inventory) over(partition by style_id) as inventory_num,
    sum(inventory * tag_price) over(partition by style_id) as inventory_price
    from product_tb
)

select 
style_id,
round(100 * sum(sales_num) / (avg(inventory_num) - sum(sales_num)),2),
round(100 * sum(sales_price) / avg(inventory_price),2)
from sales_tb left join  inventory_table on sales_tb.item_id = inventory_table.item_id
group by style_id
order by style_id

创建一个临时表储存库存信息(包括各大类的库存数量和备货值等数据)

用销售表连接库存信息表即可解出来,不难