【场景】:分组求和、动销率 = 销售的货物数量/(库存数量减去已经销售的货物数量)、售罄率 = 结算金额/(吊牌价格*库存数)
【分类】:分组查询
分析思路
难点:
1.理解动销率和售罄率
(1)统计每个货号的销售数量和总的销售金额
(2)计算动销率和售罄率
求解代码
方法一
with子句
with
main as(
#统计每个货号的销售数量和总的销售金额
select
item_id,
sum(sales_num) sku ,
sum(sales_price) gmv
from sales_tb
group by item_id
)
#动销率 = 销售的货物数量/(库存数量减去已经销售的货物数量)
#售罄率 = 结算金额/(吊牌价格*库存数)
select
style_id,
round(sum(sku) / sum(inventory-sku)*100,2) pin_rate,
round(sum(gmv) / sum(inventory*tag_price)*100,2) sell_through_rate
from main
join product_tb pt using(item_id)
group by style_id
order by style_id
方法二
from子查询
select
style_id,
round(sum(sku) / sum(inventory-sku)*100,2) pin_rate,
round(sum(gmv) / sum(inventory*tag_price)*100,2) sell_through_rate
from(
#统计每个货号的销售数量和总的销售金额
select
item_id,
sum(sales_num) sku ,
sum(sales_price) gmv
from sales_tb
group by item_id) main
join product_tb pt using(item_id)
group by style_id
order by style_id