[面试问题] 一个公司的数据库里有三个表,销售订单表、产品清单、销售网点表。
“销售订单表”记录的是销售情况,每一条数据都标明了哪个客户、哪一天、哪一个网点购买了什么产品、购买数量以及对应产品的零售价格。
产品明细表记录了公司产品的详细信息。
“销售网络表”记录了公司的销售网络。
销售订单表、产品列表、销售网点表的字段关系如下
销售订单表通过“产品”字段与产品明细相关联,销售订单表通过“交易网点”与销售网点相关联
[问题] 分析该品牌2019年5月至2020年4月的复购率。
[解决方案创意]
1。阐明业务指标
分析为“2019年5月-2020年4月期间的回购率”,这是经营分析中经常用到的指标。
复购率是衡量产品受欢迎程度的指标。复购率高,说明产品的忠实用户越多,公司就需要投入越多的精力和资源来吸引和引导用户复购。
复购率低说明产品的忠实用户少,需要把资源和精力用在提高用户转化率上。

复购率=一定时间内购买一次以上的人数/所有购买的用户数。
比如三月份买产品的100个人里有30个人买了两次。3月份回购总人数为30人,回购率=一定时间内购买一次以上的人数(30)/所有购买的用户人数(100)=30%。
2。如何判断是不是回购?
不同的行业有不同的标准。一般是指发货后再购买的商品视为回购,当天购买的不视为回购。
即如果日期不同,再次购买的用户视为复购。
在“销售订单表”中,首先需要使用if函数来判断用户(客户ID字段)的购买次数。如果大于1,则为回购,标记为1;否则,标记为0。
然后用计数函数计数。
这样,复购率=一定时间内购买一次以上的人数/所有购买的用户数。
3。在不同日期重新购买
一般来说,在不同日期进行的购买属于回购。你需要将“销售订单表”复制到两个表中,取不同日期的交集,取出不同日期购买的客户/时间,如下图所示。
将前面步骤中的SQL组合在一起,最终得到分析回购率的SQL:
获得回购率=0.2=20%
[科目考试中心]
1.这个问题侧重于对业务的理解。你首先要知道业务指标的含义。常用的指标可以在《衡量业务:指标体系》中查阅。
2.探讨if判断函数的应用。
3.内部连接的应用
推荐:如何从零开始学习SQL?








