select
style_id
,round(100*((sum(saled)/(sum(inventory)-sum(saled)))),2) pin_rate
,round(100*sum(gmv)/sum(tag_price*inventory),2) 'sell-through_rate'
from (
select
item_id,sum(sales_price) gmv
,sum(sales_num) saled
from sales_tb
group by 1
) a
left join product_tb b
using(item_id)
group by 1
order by 1
本题最大的槛是:
‘有销售的SKU数量/在售SKU数量(请忽略动销率实际计算公式,以该题目提供的公式为准)’
解题思路
1.求什么(输出什么)
以style_id聚合,求动销率、售罄率
2.怎么求
动销率=已销售数量/剩余库存=已销售数量/(总库存-已销售数量)
——数据来源:已销售数量:销售表sales_tb的sales_num、总库存:product_tb的inventory
售罄率=GMV/备货值=GMV/(吊牌价*库存数)
——数据来源:GMV:销售表sales_tb的sales_price、吊牌价、总库存:product_tb的tag_price、inventory
3.连表
销售表sales_tb和产品表product_tb,直接左连接,会出现1对多的情况,数据重复,如inventory
处理方式:把有‘多’值的销售表先聚合,再左连接,作为数据源
from( select item_id,sum(sales_price) gmv ,sum(sales_num) saled from sales_tb group by 1 ) a left join product_tb b using(item_id) group by 1 order by 1
4. 计算
根据上面的公式来就行
我自己错的地方:'sell-through_rate' 中间有个减号,列名加一个单引号,不然会报错
select style_id ,round(100*((sum(saled)/(sum(inventory)-sum(saled)))),2) pin_rate #动销率=已销售数量/剩余库存=已销售数量/(总库存-已销售数量) ,round(100*sum(gmv)/sum(tag_price*inventory),2) 'sell-through_rate' #售罄率=GMV/备货值=GMV/(吊牌价*库存数) from (
完整代码
select style_id ,round(100*((sum(saled)/(sum(inventory)-sum(saled)))),2) pin_rate ,round(100*sum(gmv)/sum(tag_price*inventory),2) 'sell-through_rate' from ( select item_id,sum(sales_price) gmv ,sum(sales_num) saled from sales_tb group by 1 ) a left join product_tb b using(item_id) group by 1 order by 1
补充点
扩展一些其他相近的指标,deepseek生成的,风险信号及健康值酌情参考,以实际业务为准。



京公网安备 11010502036488号