在电商行业 , 老板或运营同学经常需要看客户活跃 , 留存 , 流失情况 。今天 , 就重点聊一下【如何计算客户的留存率?】
留存即客户在完成第一次交易后 , 在后续的日子里 , 是否持续的上来交易 。如果按月为单位 , 则就是客户首次成交后 , 后续月份的成交比例 。
被观察客户群:某月份首次成交客户。后续的留存率都是基于这些客户来计算的 。
月度留存率算法公式:
月度留存率 = 某月份中被观察客户中成交客户数 / 被观察月份的总成交客户数
举个例子:
假设2020年1月份 , A B C D 四位客户首次成交;2月份 A B 成交;3月份 D成交 , 4月份B C D有成交 。求 1月份客户在后续2 , 3 , 4月份的留存率分别是多少?
根据前面的算法公式 , 则:
2月份的留存率 = 2 /4 =50%3月份的留存率 = 1/4 =25%4月份的留存率 = 3/4 =75%
【如何计算客户留存率 留存率计算公式】了解了计算方法后 , 下面介绍一下sql的写法 。
用SQL代码计算各月新客的留存率
第一步 , 先计算各月的新客都有哪些客户
假设有交易订单表 orders , 则准备好新客户表和月度成交表:
var 月新客户 = select `月份` , `客户id` from `订单表` where `是否新客`='是新客' and `成交`=1
第二步 , 计算出来各月成交的客户id
var 月度成交=select `月份` , `客户id` from `订单表`where `成交`=1group by `月份` , `客户id`
1月客户的后续月份留存率:
temp t202001_0= select 202001 as mm, count(`客户id`) as tn from `月新客` where `月份`=202001temp t202001_1= select 202001 as mm, b.`月份`,count(b.`客户id`) as leftnumfrom `月新客户` ainner join `月度成交` b on a.`月份`=202001 and a.`客户id`=b.`客户id`where a.`月份`=202001group by mm, b.`月份`temp t202001_2= select a.mm as `新客月份`, date_format(a.`月份`,'y-MM')as `月份`, a.leftnum/ b.tn as `留存率` from t20`001_1 a left join t20`001_0 b on a.mm=b.mmoutput t202001_2
如果你的平台系统支持函数或存储过程 , 则可以把这部分代码写成函数 , 入口参数就是指定月份 , 出口结果就是这个月份的新客在后续月份的留存率数据表 。
如果你的系统不支持函数或存储过程 , 则可以复制这部分代码成后续个月代码 。最后用union all 关联起来即可 。
形如:
select `新客月份`,`月份`,`留存率` from `1月新客留存率` union allselect `新客月份`,`月份`,`留存率` from `2月新客留存率`
在不同的平台系统下 , SQL语法不同 , 请自行修改 。
我是程序员黑洞 , 涉猎数据分析 , 程序开发 , 目前也在学Go语言开发 。欢迎关注 , 留言 。
文章插图
- 属猪人买房如何看风水-家居风水
- 山根偏低的男人性格如何 事业好不好(图文)
- 【历史故事】中国计算机天才魏延政:入职华为年薪百万,抗癌五年不幸早世
- 属虎人2019年人缘运如何,属虎2019年人缘运如何
- 2019年属虎如何提升桃花运,属虎2019年桃花运如何提升
- 2019年生肖虎倒霉的时候如何转运,2019年属虎人倒霉的时候如何转运
- 新注册的抖音号要如何养 怎么注册抖音号
- 倒三角眼的女性面相好吗 性格命运如何(图文)
- 奸门出现疤痕之人性格如何 会不会离婚(图文)
- 八字教你如何寻找你生命中的贵人!