0 背景
根据产品特性,用户再次进行(消费/复购/再次访问等)的时间需要多久?用户多久没来过了,说明该用户可能会流失呢?多久没有再次访问/购买的客户已经流失了呢?什么时候对客户进行再次推销效果会最好?
1 数据
我们以某个电商销售公司的订单明细表来作为案例。其中案例数据可以关注原文公众号"「数据运营与数据分析」",回复"「流失案例」"获取。

2 Mysql计算时间间隔再次消费的订单数
# ④聚合时间间隔(天)的消费总次数
SELECT
T3.时间间隔,
count(T3.客户编号) AS 消费次数
FROM
(
# ③计算上一单与下一单之间的时间间隔
SELECT
T2.客户编号,
T2.下单时间,
DATEDIFF(T2.下单时间,
(
SELECT
MAX(A1.下单时间)
FROM
(
# ②一天内的订单合并,一天多次下单反应不了下次的距离
SELECT
T1.客户编号,
T1.下单时间
FROM
(
# ①同一个订单号的是补发产品或补收钱进行聚合
SELECT
客户编号,
订单号,
max(date(下单时间)) as 下单时间
FROM
订单总表
WHERE
(DATE(下单时间) BETWEEN "2019/01/01" AND "2020/06/31")
AND 支付金额>0 #剔除补发/赠品单
GROUP BY
客户编号,
订单号
) AS T1
GROUP BY
T1.客户编号,
T1.下单时间
) AS A1
WHERE A1.客户编号= T2.客户编号 AND A1.下单时间<T2.下单时间
)
) as 时间间隔
FROM
(
# ②一天多次下单反应不了下次的距离合并
SELECT
T1.客户编号,
T1.下单时间
FROM
(
# ①同一个订单号的是补发产品或补款进行聚合
SELECT
客户编号,
订单号,
max(date(下单时间)) as 下单时间
FROM
订单总表
WHERE
(DATE(下单时间) BETWEEN "2019/01/01" AND "2020/06/31")
AND 支付金额>0 #剔除补发/赠品单
GROUP BY
客户编号,
订单号
) AS T1
GROUP BY
T1.客户编号,
T1.下单时间
)
AS T2
)
AS T3
WHERE
T3.时间间隔 is not Null
GROUP BY
T3.时间间隔
;
# 代码存在优化空间,自行优化,看代码顺序①->②->③->④
# 需要进行案例测试的小伙伴建议导入数据到数据库以后给客户编号,订单号建立索引,提高查询速度。
3 计算每个时间间隔的累计占比
为了方便操作,这里我们就将sql查询结果的数据导出到excel中进行计算。
4 分析流失时间节点
图中显示,74%的复购会在90天内产生,也就是说90天内复购产品的客户属于正常现在;如果超过90天,并且客户距离上次购买时长在150天以内,再次复购的概率已经很小了,处于这个阶段的客户多数开始进入沉睡期;超过240,少于480天客户复购概率仅有7%,处于这个阶段的客户基本处于沉睡状态;超过240天未复购的客户只有2.8%的可能再次复购,基本上我们可以界定超过240天未复购的客户已经流失,超过480天的客户截至现在是基本是非常难以挽回的了。
5 寻找最佳的运营介入期

不要等到客户流失了再运营,难度会非常大,应结合产品使用周期等因素,在客户即将进入睡眠期的时候开始唤醒,本案例中建议30到60天还未复购的客户开始关怀,从60天以上未复购的客户开始进行针对性的客户营销活动(如60-90天还未复购的客户进行大力的关联产品推荐;90-120天未复购的进行适当优惠政策;超过120天以上的进行关怀礼品赠送等)。

