30天复购率怎么算(如何分析用户复购行为?)




[面试问题] 一个公司的数据库里有三个表,销售订单表、产品清单、销售网点表。


“销售订单表”记录的是销售情况,每一条数据都标明了哪个客户、哪一天、哪一个网点购买了什么产品、购买数量以及对应产品的零售价格。





产品明细表记录了公司产品的详细信息。



“销售网络表”记录了公司的销售网络。




销售订单表、产品列表、销售网点表的字段关系如下




销售订单表通过“产品”字段与产品明细相关联,销售订单表通过“交易网点”与销售网点相关联


[问题] 分析该品牌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?




您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友