-- 每个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
创建一个临时表储存库存信息(包括各大类的库存数量和备货值等数据)
用销售表连接库存信息表即可解出来,不难