美文网首页设计方案
SQL 项目实战专题一:销售数据统计指标

SQL 项目实战专题一:销售数据统计指标

作者: 对三zzzzzzz | 来源:发表于2019-12-27 17:27 被阅读0次

一、业务背景介绍:

项目的实战背景是二家超市的真实数据,数据时间段是从 20160101 到 20171231。
主要表字段说明:


1

超市的主要商业场景:
1、 进来的商品销售给顾客,要让进来的商品顾客愿意购买。所以对于购买不愿意购买的商品要及时进行淘汰,进行下架,或者退还供应商,或者打折销售掉。如果卖不掉,超市是不是就把进货成本都亏损了,例如:进了 20 件坚果,如果进货 20 元,都卖不掉也退不了货那超市就白白损失了:400 元!
2、 所以超市的经营者,定期都需要通过数行监控,不断看每天哪些商品有在卖?哪些商品没有在卖?在每个月的时候,一定会复盘,在过去一个月里面有多少商品有产生过销售,每件有哪几天在产生销售。

二、思考以下问题 :

1、如果过去一个月,某些商品没有一天产生销售,或者就是一二天产生销售,如果你是超市的经营者,你会怎么做呢?
2)、动销率可以用来衡量什么?
3)、目标:理解简单的数据统计指标背后的商业应用背景及商业逻辑,思考数据是如何指导运营的。

三、需求:

销售数据统计指标:统计 2017 年 8 月,有多少商品销售的天数超过 1 天,2 天,3 天,……31 天的,查看商品的动销情况;
说明:
1、商品:即SKU,可以理解为一件商品,也就是我们表中的 GoodsID,暂时不考虑购买量以及购买金额。
2、销售的天数是指:某天这个商品在这天产生过订单
3、动销率=有销售的 SKU 数/在销售的 SKU 数;例如:8 月 1 号,有过销售记录的 SKU 有 100 件,整个超市地 200 件商品在货架上可以卖,则这天的动销率为50%。

四、逻辑分析:

1、 时间范围:2017 年 8 月份,说明需要日期字段,时间粒度是为:天。
2、 统计商品销售,那就涉及:商品编辑,商品的销售产生的订单
3、 首先,统计每个商品在这个月里面有多少天产生了被购买过的记录数。
4、 然后,再基于查询的结果:再按日期来数据统计,只产生过 1 天,2 天,。。。31 天销售记录商品数分别多少。

五、代码实现过程:

SELECT sale_days
      ,COUNT(DISTINCT GoodsID) AS goods_qty  # 统计不同天数有销售商品数量
FROM(SELECT GoodsID
           ,COUNT(DISTINCT SDate) AS sale_days #统计每种商品各有多少在有销售
     FROM OrderItem
     WHERE SDate BETWEEN '20170801' AND '20170831'
     GROUP BY GoodsID
     ORDER BY sale_days) AS t
GROUP BY sale_days
ORDER BY sale_days DESC;
3 3

假设,我们想看下201708每天的动销率该如何查看呢?
逻辑分析:
1、所有商品,也就是GoodsID在Goods表中
2、因为总的在售商品数需要反复使用,所以使用定义变量
3、在OrderItem表按照日期分组统计不同商品数量,得到每日有销售记录的商品数量
4、汇总数据得到显示样式为:日期——有销售商品数量——动销率。

SELECT SDate
      ,sale_quantity AS 有销售的数量
      ,CONCAT(ROUND(sale_quantity/@total_quantity * 100,2),"%") AS '动销率'
FROM(SELECT SDate
           ,COUNT(DISTINCT GoodsID) AS sale_quantity
      FROM OrderItem 
      WHERE SDate BETWEEN '20170801' AND '20170831' 
      GROUP BY SDate) AS t1
JOIN (SELECT @total_quantity := (SELECT COUNT(DISTINCT GoodsID)
                                 FROM Goods)) AS t2;

201708每日动销率

后续其实可以做个折线趋势图,看下当月不同日期动销率的变化情况,如果有业务需要的话。这里主要是SQL的运用,咱不做过多分析。

相关文章

网友评论

    本文标题:SQL 项目实战专题一:销售数据统计指标

    本文链接:https://www.haomeiwen.com/subject/kwfjgctx.html