评价一个商业产品好不好,我们可以使用NPS、退款率、产品的使用效果等指标。
NPS是推荐值,是用户向其他人推荐产品的可能性,净推荐值(NPS)=(推荐者数/总样本数)×100%-(贬损者数/总样本数)×100%。
退款率,是退款的用户占比。
产品使用效果,是产品承诺给用户的效果,在用户使用之后,是不是真的能达到,比如下面某APP商业产品,说开通会员更快找到另一半,用户是不是能够更快的找到另外一半,就是效果的体现。
还有一个指标,能够很好的体现产品效果---复购。复购是指用户多次购买。如果用户不满意,那肯定不会多次购买(刚需品除外)。复购的维度比较多,比如金额、品类等,这里主要讨论周期。
如果我们能够计算出大部分用户的复购周期,那么,我们就能精细化运营。当到达一定的周期时,就可以通过发优惠券或是其他的运营方式触达用户。下面给大家分享一下怎么用sql计算用户的复购周期。
下表是不同用户在不同时间的下单情况。表名:order_user,字段名称:a.用户名称---customer_name,b.订单时间---order_date
思路:
把订单时间往后位移一行。
用订单时间减去位移后的时间,就得到了周期。
以周期进行聚合,得到了不同周期的分布。
第一步:位移
使用lag函数进行位移。lag(order_date,1)中两个参数,第一个参数是需要位移的字段,第二个字段是位移几行,在这里让订单时间往后位移一行得到lag1字段。
以customer_name进行开窗,然后以order_date进行排序,可以看到用户的每个订单时间都往后移动了一行。
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
第二步:计算周期
然后使用订单时间减去位移后的时间,得到了周期。
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
第三步:确定周期分布
最后以周期进行聚合,求次数,得到了不同周期的次数。注意:
对周期进行排序,这样就能得到从小到大的顺序;
排除null,位移以后第一订单时间,对应的位移值是null,需要排除。
select
diff as '周期',
count(*) as '次数'
from
(
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
)b
where
diff is not null
group by
diff
order by
diff
完整版SQL
完整版的SQL中,我使用了with创建了一个临时表,表名就是order_user,大家可以在网上搜索一下,如果有疑问可以私信我。
with order_user as (
select
customer_name,
date(order_date) as order_date
from
chaoshi.order
where
Customer_Name in (
'曾惠','许安','韦松'
)
group by
customer_name,
order_date
order by
customer_name,
date(order_date)
)
select
diff as '周期',
count(*) as '次数'
from
(
select
customer_name,
order_date,
lag1,
datediff(order_date,lag1) as diff
from
(
select
customer_name,
order_date,
lag(order_date,1) over(partition by customer_name order by order_date asc) as lag1
from
order_user
)a
)b
where
diff is not null
group by
diff
order by
diff
;
得到了周期分布,就可以交付给运营同学,针对不同的用户进行精细化运营。
- gongzhongh:数有道
- gongzhongh:数有道
- gongzhongh:数有道