sql复购率计算多种方法

注:这个复购率算的更加细致,比其他的算法更加精妙,能看懂的不多,好好体会!

说明:这是一个订单的复购率,计算的时候单独提取了n天复购的用户明细

关键sql说明:

D:取得用户下的第一单订单的时间,以及把第一单取出来,方便后面把第一单排除,排除后的单就是复购单

od:订单表,关联的时候限制订单时间范围以及排除用户下的第一单    

这里取得是一段时间内,用户的复购情况, adddate用来获取多少天之后,限制了订单表的范围,并且取得是每个用户下的第一单后的多少天的复购情况

 

 

 

以下是sql明细

 SELECT A.day,
IFNULL(cast((base.`3days复购用户数`*1.0/base.`完成用户数`)*100 as decimal(18,2)),'0.00') AS rebuyRate3,
IFNULL(cast((base.`5days复购用户数`*1.0/base.`完成用户数`)*100 as decimal(18,2)),'0.00') AS rebuyRate5,
IFNULL(cast((base.`7days复购用户数`*1.0/base.`完成用户数`)*100 as decimal(18,2)),'0.00') AS rebuyRate7,
IFNULL(cast((base.`15days复购用户数`*1.0/base.`完成用户数`)*100 as decimal(18,2)),'0.00') AS rebuyRate15,
IFNULL(cast((base.`30days复购用户数`*1.0/base.`完成用户数`)*100 as decimal(18,2)),'0.00') AS rebuyRate30,
IFNULL(cast((base.`3days复购单量`/base.`3days复购用户数`) as decimal(18,2)),'0.00') AS avgRebuyNum3,
IFNULL(cast((base.`5days复购单量`/base.`5days复购用户数`) as decimal(18,2)),'0.00') AS avgRebuyNum5,
IFNULL(cast((base.`7days复购单量`/base.`7days复购用户数`) as decimal(18,2)),'0.00') AS avgRebuyNum7,
IFNULL(cast((base.`15days复购单量`/base.`15days复购用户数`) as decimal(18,2)),'0.00') AS avgRebuyNum15,
IFNULL(cast((base.`30days复购单量`/base.`30days复购用户数`) as decimal(18,2)),'0.00') AS avgRebuyNum30,
IFNULL(cast((base.`3days复购单量`/base.`完成用户数`) as decimal(18,2))+1,'0.00') AS avgRebuyFinishNum3,
IFNULL(cast((base.`5days复购单量`/base.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值