目录
0 需求描述
1 数据准备
1.1 订单明细表
1.2 商品信息表
2 SQL实现
3 问题分析与总结
3.1 计算 7 日动销率和滞销率主要有以下方法总结
按商品数量计算
按销售额计算
按销售数量计算
3.1 提高商品 7 日动销率和降低滞销率的方法?
优化商品管理
加强营销推广
提升客户服务
员工激励与培训
市场与竞争分析
3.2 7 如何设置7日动销率和滞销率的合理区间
一般零售行业
电商行业
制造业
3.3 哪些因素会影响7日动销率和滞销率?
商品本身
市场与竞争
价格
销售渠道与促销
库存管理与供应链
客户服务
专栏优势(1)一次收费持续更新。
往期精彩
0 需求描述
动销率定义为品类商品中一段时间内有销量的商品占当前已上架总商品数的比例(有销量的商品/已上架总商品数)。
滞销率定义为品类商品中一段时间内没有销量的商品占当前已上架总商品数的比例。(没有销量的商品/已上架总商品数)。
只要当天任一店铺有任何商品的销量就输出该天的结果
从订单明细表(order_detail)和商品信息表(sku_info)表中求出国庆7天每天每个品类的商品的动销率和滞销率
结果如下(截取部分):
Category_id (品类id) | 1号 (动销) | 1号 (滞销) | 2号 (动销) | 2号 (滞销) | 3号 (动销) | 3号 (滞销) |
1 | 1.0 | 0.0 | 0.5 | 0.5 | 0.75 | 0.25 |
2 | 0.75 | 0.25 | 0.75 | 0.25 | 0.75 | 0.25 |
3 | 0.25 | 0.75 | 0.75 | 0.25 | 0.75 | 0.25 |
1 数据准备
1.1 订单明细表
1)表结构
order_detail_id (订单明细id) | order_id (订单id) | sku_id (商品id) | create_date (下单日期) | price (商品单价) | sku_num (商品件数) |
1 | 1 | 1 | 2021-09-30 | 2000.00 | 2 |
2 | 1 | 3 | 2021-09-30 | 5000.00 | 5 |
22 | 10 | 4 | 2020-10-02 | 6000.00 | 1 |
23 | 10 | 5 | 2020-10-02 | 500.00 | 24 |
24 | 10 | 6 | 2020-10-02 | 2000.00 | 5 |
2)建表语句
sql">DROP TABLE IF EXISTS order_detail;
CREATE TABLE order_detail
(`order_detail_id` string COMMENT '订单明细id',`order_id` string COMMENT '订单id',`sku_id` string COMMENT '商品id',`create_date` string COMMENT '下单日期',`price` decimal(16, 2) COMMENT '下单时的商品单价',`sku_num` int COMMENT '下单商品件数'
) COMMENT '订单明细表'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
装载数据
sql">INSERT overwrite table order_detail
values ('1', '1', '1', '2021-09-27', 2000.00, 2),('2', '1', '3', '2021-09-27', 5000.00, 5),('3', '2', '4', '2021-09-28', 6000.00, 9),('4', '2', '5', '2021-09-28', 500.00, 33),('5', '3', '7', '2021-09-29', 100.00, 37),('6', '3', '8', '2021-09-29', 600.00, 46),('7', '3', '9', '2021-09-29', 1000.00, 12),('8', '4', '12', '2021-09-30', 20.00, 43),('9', '5', '1', '2021-10-01', 2000.00, 8),('10', '5', '2', '2021-10-01', 10.00, 18),('11', '5', '3', '2021-10-01', 5000.00, 6),('12', '6', '4', '2021-10-01', 6000.00, 8),('13', '6', '6', '2021-10-01', 2000.00, 1),('14', '7', '7', '2021-10-01', 100.00, 17),('15', '7', '8', '2021-10-01', 600.00, 48),('16', '7', '9', '2021-10-01', 1000.00, 45),('17', '8', '10', '2021-10-02', 100.00, 48),('18', '8', '11', '2021-10-02', 50.00, 15),('19', '8', '12', '2021-10-02', 20.00, 31),('20', '9', '1', '2021-09-30', 2000.00, 9),('21', '9', '2', '2021-10-02', 10.00, 5800),('22', '10', '4', '2021-10-02', 6000.00, 1),('23', '10', '5', '2021-10-02', 500.00, 24),('24', '10', '6', '2021-10-02', 2000.00, 5),('25', '11', '8', '2021-10-02', 600.00, 39),('26', '12', '10', '2021-10-03', 100.00, 47),('27', '12', '11', '2021-10-03', 50.00, 19),('28', '12', '12', '2021-10-03', 20.00, 13000),('29', '13', '1', '2021-10-03', 2000.00, 4),('30', '13', '3', '2021-10-03', 5000.00, 1),('31', '14', '4', '2021-10-03', 6000.00, 5),('32', '14', '5', '2021-10-03', 500.00, 47),('33', '14', '6', '2021-10-03', 2000.00, 8),('34', '15', '7', '2021-10-03', 100.00, 20),('35', '16', '10', '2021-10-03', 100.00, 22),('36', '16', '11', '2021-10-03', 50.00, 42),('37', '16', '12', '2021-10-03', 20.00, 7400),('38', '17', '1', '2021-10-04', 2000.00, 3),('39', '17', '2', '2021-10-04', 10.00, 21),('40', '18', '4', '2021-10-04', 6000.00, 8),('41', '18', '5', '2021-10-04', 500.00, 28),('42', '18', '6', '2021-10-04', 2000.00, 3),('43', '19', '7', '2021-10-04', 100.00, 55),('44', '19', '8', '2021-10-04', 600.00, 11),('45', '19', '9', '2021-10-04', 1000.00, 31),('46', '20', '11', '2021-10-04', 50.00, 45),('47', '20', '12', '2021-10-04', 20.00, 27),('48', '21', '1', '2021-10-04', 2000.00, 2),('49', '21', '2', '2021-10-04', 10.00, 39),('50', '21', '3', '2021-10-04', 5000.00, 1),('51', '22', '4', '2021-10-05', 6000.00, 8),('52', '22', '5', '2021-10-05', 500.00, 20),('53', '23', '7', '2021-10-05', 100.00, 58),('54', '23', '8', '2021-10-05', 600.00, 18),('55', '23', '9', '2021-10-05', 1000.00, 30),('56', '24', '10', '2021-10-05', 100.00, 27),('57', '24', '11', '2021-10-05', 50.00, 28),('58', '24', '12', '2021-10-05', 20.00, 53),('59', '25', '1', '2021-10-05', 2000.00, 5),('60', '25', '2', '2021-10-05', 10.00, 35),('61', '25', '3', '2021-10-05', 5000.00, 9),('62', '26', '4', '2021-10-05', 6000.00, 1),('63', '26', '5', '2021-10-05', 500.00, 13),('64', '26', '6', '2021-10-05', 2000.00, 1),('65', '27', '7', '2021-10-06', 100.00, 30),('66', '27', '8', '2021-10-06', 600.00, 19),('67', '27', '9', '2021-10-06', 1000.00, 33),('68', '28', '10', '2021-10-06', 100.00, 37),('69', '28', '11', '2021-10-06', 50.00, 46),('70', '28', '12', '2021-10-06', 20.00, 45),('71', '29', '1', '2021-10-06', 2000.00, 8),('72', '29', '2', '2021-10-06', 10.00, 57),('73', '29', '3', '2021-10-06', 5000.00, 8),('74', '30', '4', '2021-10-06', 6000.00, 3),('75', '30', '5', '2021-10-06', 500.00, 33),('76', '30', '6', '2021-10-06', 2000.00, 5),('77', '31', '8', '2021-10-07', 600.00, 13),('78', '31', '9', '2021-10-07', 1000.00, 43),('79', '32', '10', '2021-10-07', 100.00, 24),('80', '32', '11', '2021-10-07', 50.00, 30),('81', '33', '1', '2021-10-07', 2000.00, 8),('82', '33', '2', '2021-10-07', 10.00, 48),('83', '33', '3', '2021-10-07', 5000.00, 5),('84', '34', '4', '2021-10-07', 6000.00, 10),('85', '34', '5', '2021-10-07', 500.00, 44),('86', '34', '6', '2021-10-07', 2000.00, 3),('87', '35', '8', '2020-10-08', 600.00, 25),('88', '36', '10', '2020-10-08', 100.00, 57),('89', '36', '11', '2020-10-08', 50.00, 44),('90', '36', '12', '2020-10-08', 20.00, 56),('91', '37', '1', '2020-10-08', 2000.00, 2),('92', '37', '2', '2020-10-08', 10.00, 26),('93', '37', '3', '2020-10-08', 5000.00, 1),('94', '38', '6', '2020-10-08', 2000.00, 6),('95', '39', '7', '2020-10-08', 100.00, 35),('96', '39', '8', '2020-10-08', 600.00, 34),('97', '40', '10', '2020-10-08', 100.00, 37),('98', '40', '11', '2020-10-08', 50.00, 51),('99', '40', '12', '2020-10-08', 20.00, 27);
1.2 商品信息表
1)表结构
sku_id (商品id) | name (商品名称) | category_id (分类id) | from_date (上架日期) | price (商品价格) |
1 | xiaomi 10 | 1 | 2020-01-01 | 2000 |
6 | 洗碗机 | 2 | 2020-02-01 | 2000 |
9 | 自行车 | 3 | 2020-01-01 | 1000 |
2)建表语句
sql">DROP TABLE IF EXISTS sku_info;CREATE TABLE sku_info(`sku_id` string COMMENT '商品id',`name` string COMMENT '商品名称',`category_id` string COMMENT '所属分类id',`from_date` string COMMENT '上架日期',`price` double COMMENT '商品单价') COMMENT '商品属性表'ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
3)数据装载
sql">insert overwrite table sku_infovalues ('1', 'xiaomi 10', '1', '2020-01-01', 2000),('2', '手机壳', '1', '2020-02-01', 10),('3', 'apple 12', '1', '2020-03-01', 5000),('4', 'xiaomi 13', '1', '2020-04-01', 6000),('5', '破壁机', '2', '2020-01-01', 500),('6', '洗碗机', '2', '2020-02-01', 2000),('7', '热水壶', '2', '2020-03-01', 100),('8', '微波炉', '2', '2020-04-01', 600),('9', '自行车', '3', '2020-01-01', 1000),('10', '帐篷', '3', '2020-02-01', 100),('11', '烧烤架', '3', '2020-02-01', 50),('12', '遮阳伞', '3', '2020-03-01', 20);
2 SQL实现
代码实现
sql">-- 国庆每一天 每个商品品类有多少商品被销售了
selectt1.category_id,sum(if(t1.create_date='2021-10-01',1,0)) `第1天`,sum(if(t1.create_date='2021-10-02',1,0)) `第2天`,sum(if(t1.create_date='2021-10-03',1,0)) `第3天`,sum(if(t1.create_date='2021-10-04',1,0)) `第4天`,sum(if(t1.create_date='2021-10-05',1,0)) `第5天`,sum(if(t1.create_date='2021-10-06',1,0)) `第6天`,sum(if(t1.create_date='2021-10-07',1,0)) `第7天`
from(select distinct si.category_id,od.create_date,si.namefrom order_detail odjoinsku_info sionod.sku_id=si.sku_idwhereod.create_date>='2021-10-01' and od.create_date<='2021-10-07'
)t1
group byt1.category_id-- 每一天的动销率 和 滞销率selectt2.category_id,t2.`第1天`/t3.cn,1-t2.`第1天`/t3.cn,t2.`第2天`/t3.cn,1-t2.`第2天`/t3.cn,t2.`第3天`/t3.cn,1-t2.`第3天`/t3.cn,t2.`第4天`/t3.cn,1-t2.`第4天`/t3.cn,t2.`第5天`/t3.cn,1-t2.`第5天`/t3.cn,t2.`第6天`/t3.cn,1-t2.`第6天`/t3.cn,t2.`第7天`/t3.cn,1-t2.`第7天`/t3.cn
from(selectt1.category_id,sum(if(t1.create_date='2021-10-01',1,0)) `第1天`,sum(if(t1.create_date='2021-10-02',1,0)) `第2天`,sum(if(t1.create_date='2021-10-03',1,0)) `第3天`,sum(if(t1.create_date='2021-10-04',1,0)) `第4天`,sum(if(t1.create_date='2021-10-05',1,0)) `第5天`,sum(if(t1.create_date='2021-10-06',1,0)) `第6天`,sum(if(t1.create_date='2021-10-07',1,0)) `第7天`from(select distinct si.category_id,od.create_date,si.namefrom order_detail odjoinsku_info sionod.sku_id=si.sku_idwhereod.create_date>='2021-10-01' and od.create_date<='2021-10-07')t1group byt1.category_id)t2
join(selectcategory_id,count(*) cnfromsku_infogroup bycategory_id)t3
on t2.category_id=t3.category_id
3 问题分析与总结
3.1 计算 7 日动销率和滞销率主要有以下方法总结
按商品数量计算
- 动销率:
- 公式:7 日动销率 =(7 日内有销售的商品品种数 ÷7 日内总商品品种数)×100%。
- 举例:假设某商店在国庆 7 天内,总共有 1000 种商品,其中有销售记录的商品有 600 种,则 7 日动销率 =(600÷1000)×100%=60%。
- 滞销率:
- 公式:7 日滞销率 =(7 日内无销售的商品品种数 ÷7 日内总商品品种数)×100%=1-7 日动销率。
- 举例:根据上述例子,7 日滞销率 =(400÷1000)×100%=40%,或直接用 1-60%=40%。
按销售额计算
- 动销率:
- 公式:7 日动销率 =(7 日内有销售的商品销售额之和 ÷7 日内总商品销售额)×100%。
- 举例:假设国庆 7 天内,商店总销售额为 100 万元,其中有销售记录的商品销售额之和为 70 万元,则 7 日动销率 =(70÷100)×100%=70%。
- 滞销率:
- 公式:7 日滞销率 =(7 日内无销售的商品按成本价计算的金额之和 ÷7 日内总商品按成本价计算的金额之和)×100%=1-7 日动销率。
- 举例:假设商店 7 日内总商品按成本价计算的金额之和为 80 万元,无销售的商品按成本价计算的金额之和为 30 万元,则 7 日滞销率 =(30÷80)×100%=37.5%,或用 1-70%=30%,这里按销售额和按成本价计算的滞销率可能存在一定差异,具体需根据实际情况选择合适的方法。
按销售数量计算
- 动销率:
- 公式:7 日动销率 =(7 日内有销售的商品销售数量之和 ÷7 日内总商品进货数量)×100%。
- 举例:假设国庆 7 天内,商店总进货数量为 5000 件,有销售记录的商品销售数量之和为 3000 件,则 7 日动销率 =(3000÷5000)×100%=60%。
- 滞销率:
- 公式:7 日滞销率 =(7 日内无销售的商品进货数量之和 ÷7 日内总商品进货数量)×100%=1-7 日动销率。
- 举例:根据上述例子,7 日滞销率 =(2000÷5000)×100%=40%,或直接用 1-60%=40%。
在实际应用中,可以根据具体的业务需求和数据情况选择合适的计算方法,还可以结合多种方法进行综合分析,以更全面地了解商品的销售和库存情况。
3.1 提高商品 7 日动销率和降低滞销率的方法?
优化商品管理
- 精准选品:深入了解市场需求、消费者偏好和流行趋势,结合历史销售数据,选择更具潜力和竞争力的商品。如服装店铺根据季节、时尚潮流和目标客户群体的喜好,提前选好款式新颖、质量可靠的服装。
- 合理库存管理:根据销售预测和实际销售情况,合理控制商品的库存水平,避免库存积压。可采用先进的库存管理系统,实时监控库存数量和周转率,及时调整补货计划。
- 商品陈列优化:将畅销商品和新品摆放在显眼位置,如店铺的黄金陈列区、货架的中层等,以吸引顾客的注意力,提高顾客的购买几率。同时,合理搭配陈列相关商品,促进连带销售。
加强营销推广
- 制定促销活动:在 7 日内推出限时折扣、满减优惠、买一送一等促销活动,吸引顾客购买。如国庆节期间,商家推出全场 8 折优惠活动,刺激消费者的购买欲望。
- 利用社交媒体和线上渠道:通过微信公众号、微博、抖音等社交媒体平台进行产品宣传和推广,吸引潜在客户。还可以与网红、博主合作进行直播带货,提高产品的曝光度和销量。
- 个性化推荐:根据顾客的购买历史和浏览行为,为顾客提供个性化的商品推荐,提高顾客的购物体验和购买转化率。如电商平台根据用户的浏览和购买记录,向其推荐相关的热门商品。
提升客户服务
- 提供优质的售前服务:确保员工对商品有足够的了解,能够及时、准确地回答顾客的咨询,帮助顾客做出购买决策。如培训销售人员,使其熟悉产品的特点、优势和使用方法。
- 优化购物环境:保持店铺的整洁、舒适和美观,提供便捷的购物设施和服务,如充足的试衣间、舒适的休息区等,让顾客感受到愉悦的购物体验。
- 加强售后保障:及时处理顾客的投诉和退换货问题,建立良好的口碑和品牌形象,提高顾客的忠诚度和复购率。如设立专门的售后服务热线,及时解决顾客的问题。
员工激励与培训
- 激励措施:设立合理的销售奖励制度,对销售业绩突出的员工给予物质和精神奖励,如奖金、荣誉证书、晋升机会等,激发员工的工作积极性和销售热情。
- 专业培训:定期组织员工培训,提升员工的销售技巧、产品知识和服务意识,使员工能够更好地为顾客提供服务和推荐商品,从而提高销售效率。
市场与竞争分析
- 关注竞争对手:了解竞争对手的商品策略、价格、促销活动等,及时调整自己的经营策略,以保持竞争优势。如发现竞争对手推出类似商品并进行促销,可及时调整自己的价格或推出更有吸引力的活动。
- 挖掘市场空白:通过市场调研和分析,寻找尚未被满足的市场需求和空白领域,及时推出相应的商品和服务,开拓新的销售渠道和市场空间。如针对特定消费群体的特殊需求,开发定制化的商品。
3.2 7 如何设置7日动销率和滞销率的合理区间
7 日动销率和滞销率的合理区间会因行业、企业规模、商品品类等因素而有所不同,以下是大致的参考范围:
一般零售行业
- 7 日动销率:通常在 60%-80% 左右被认为是比较合理的区间。对于一些快时尚、生鲜食品等周转速度较快的品类,动销率可能会更高,一般要求达到 70%-90%。而对于一些耐用品、大件商品等,动销率可能相对较低,但也应尽量保持在 50%-70% 左右。
- 7 日滞销率:相应的,其合理区间一般在 20%-40% 左右。快时尚和生鲜食品等品类的滞销率应尽量控制在 10%-30%,耐用品和大件商品的滞销率可允许在 30%-50% 左右,但不宜过高。
电商行业
- 7 日动销率:对于电商平台上的综合类店铺,整体 7 日动销率能达到 50%-70% 就较为不错。若是一些专注于特定品类的垂直电商,如美妆、母婴等,动销率可能需要达到 70%-90%。
- 7 日滞销率:综合类电商店铺的滞销率一般控制在 30%-50% 为宜,垂直电商则应尽量将滞销率控制在 10%-30%。
制造业
- 7 日动销率:如果是生产标准化产品的制造企业,其成品的 7 日动销率在 40%-60% 左右可能较为合理。对于定制化产品的企业,由于生产和销售的特殊性,动销率可能会相对较低,在 30%-50% 左右。
- 滞销率:标准化产品制造企业的滞销率一般应控制在 40%-60%,定制化产品企业的滞销率可能在 50%-70% 左右,但需结合企业实际情况进行判断和优化。
3.3 哪些因素会影响7日动销率和滞销率?
以下是一些会影响 7 日动销率和滞销率的因素:
商品本身
- 品质与功能:商品质量好、功能满足消费者需求,动销率相对较高,反之则可能导致滞销。例如,一款智能手机如果拍照清晰、续航能力强、运行速度快,就更容易在 7 日内销售出去,而质量差或功能欠缺的手机则可能滞销。
- 款式与包装:时尚、新颖的款式和吸引人的包装能吸引消费者的眼球,提高动销率。比如,在服装行业,当季流行的款式往往比过时的款式动销率高得多;精美的包装也会使商品在货架上更具吸引力,促进销售。
- 品牌影响力:知名品牌通常具有较高的品牌知名度和美誉度,消费者对其产品更信任,购买意愿更强,动销率也相对较高。而一些小众品牌或无品牌的商品,在没有其他突出优势的情况下,可能面临滞销的风险。
市场与竞争
- 市场需求:市场对某种商品的需求程度直接影响其动销率和滞销率。当市场需求旺盛时,如在夏季对空调的需求高峰期,空调的动销率会大幅提升;而当市场需求萎缩时,如传统胶卷相机在数码相机普及后的市场需求急剧下降,就容易出现滞销。
- 季节与时间因素:某些商品具有明显的季节性或时效性,如节日礼品、季节性服装等。在特定的季节或节日期间,这些商品的动销率会显著提高,错过时机则可能滞销。
- 竞争对手:竞争对手的数量、实力和营销策略也会对商品的动销率和滞销率产生影响。如果竞争对手推出类似但更具优势的产品,或者进行大规模的促销活动,可能会抢占市场份额,导致本企业商品的动销率下降,滞销率上升。
价格
- 定价策略:合理的定价是影响商品销售的重要因素之一。如果价格过高,超出了消费者的心理价位和购买能力,可能会导致销售不畅,滞销率增加;而价格过低,可能会让消费者对商品质量产生怀疑,也不一定能提高动销率。
- 价格波动:价格的频繁波动可能会使消费者持观望态度,等待更优惠的价格,从而影响商品的即时销售,降低 7 日动销率。但适时的折扣和促销活动又可以在一定程度上刺激销售,提高动销率。
销售渠道与促销
- 销售渠道:选择合适的销售渠道可以扩大商品的销售范围和受众群体,提高动销率。例如,线上电商平台可以突破地域限制,接触到更广泛的消费者,而线下实体店则可以提供即时购物体验和面对面的服务,两者结合可以更好地促进销售。
- 促销活动:有效的促销活动如打折、满减、赠品等可以吸引消费者购买,提高商品的动销率。在促销期间,消费者可能会因为优惠而提前购买或增加购买量,从而使商品在 7 日内的销售情况得到改善。
库存管理与供应链
- 库存水平:库存过多或过少都可能对动销率和滞销率产生不利影响。库存过多可能导致商品积压,增加滞销率;库存过少则可能无法满足市场需求,导致动销率下降。
- 补货及时性:及时补货可以保证商品的持续供应,避免因缺货而影响销售。如果补货不及时,可能会导致顾客流失,降低动销率,同时也可能使未及时销售的商品成为滞销品。
客户服务
- 售前服务:专业、热情的售前服务可以帮助消费者更好地了解商品,解决他们的疑虑和问题,从而提高购买意愿和动销率。例如,销售人员对商品的详细介绍和推荐可以让消费者更有信心购买。
- 售后服务:良好的售后服务可以提高消费者的满意度和忠诚度,促进二次购买和口碑传播。如果售后服务不到位,如退换货困难、处理投诉不及时等,可能会导致消费者对品牌和商品产生不满,影响后续销售,增加滞销率。
如果您觉得本文还不错,对你有帮助,那么不妨可以关注一下我的数字化建设实践之路专栏,这里的内容会更精彩。
专栏 原价99,现在活动价59.9,按照阶梯式增长,还差5个人上升到69.9,最终恢复到原价。
专栏优势
(1)一次收费持续更新。
(2)实战中总结的SQL技巧,帮助SQLBOY 在SQL语言上有质的飞越,无论你应对业务难题及面试都会游刃有余【全网唯一讲SQL实战技巧,方法独特】
(3)实战中数仓建模技巧总结,让你认识不一样的数仓。【数据建模+业务建模,不一样的认知体系】(如果只懂数据建模而不懂业务建模,数仓体系认知是不全面的)
(4)数字化建设当中遇到难题解决思路及问题思考。
我的专栏具体链接如下
数字化建设通关指南_莫叫石榴姐的博客-CSDN博客
https://blog.csdn.net/godlovedaniel/category_12706766.html
往期精彩
数势科技指标平台, 让数据产生最大价值
数据科学与SQL:如何利用SQL计算线性回归系数?
SQL进阶技巧:如何利用SQL巧解公务员逻辑推理题?【修正版】
SQL进阶技巧:如何实现分钟级的趋势图?
数据科学与SQL:组距分组分析 | 区间分布问题
SQL进阶技巧:非等值连接--单向近距离匹配