Py学习  »  DATABASE

复购率指标解读及mysql实现

经管之家 • 1 年前 • 304 次点击  

留存率是指在一定时间内,用户或客户继续使用产品或服务的比例。它是衡量用户忠诚度和产品或服务质量的重要指标之一。

留存率可以分为不同类型,如日留存率、周留存率、月留存率等,具体取决于所关注的时间段。通常情况下,留存率会随着时间的推移而逐渐下降,因为部分用户或客户可能会流失或停止使用产品或服务。
留存率的计算公式如下:
留存率 = (当前时间段内继续使用产品或服务的用户数 / 上一个时间段的用户总数) × 100%
留存率的高低可以反映产品或服务的吸引力和用户满意度。较高的留存率意味着用户对产品或服务的黏性较强,对企业而言,可以带来更稳定的收入和更高的用户生命周期价值。
通过监测和分析留存率,企业可以了解用户的使用习惯、需求和偏好,进而优化产品或服务,提升用户体验,增加用户黏性,减少用户流失,促进业务的可持续发展。
--查询数据新增/次日/七日/三十日留存情况,以下为示例代码:
select firstday,
sum(if(diff=0,1,0)) as 新增,
sum(if(diff=1,1,0)) as 次日留存,
sum(if(diff=6,1,0)) as 7日留存,
sum(if(diff=29,1,0)) as 30日留存,
sum(if(diff=1,1,0))/sum(if(diff=0,1,0)) as 次日留存率,
sum(if(diff=6,1,0))/sum(if(diff=0,1,0)) as 7日留存率,
sum(if(diff=29,1,0))/sum(if(diff=0,1,0)) as 30日留存率
from( select user_id, 日期, min(日期)over(partition by user_id order by 日期) as firstday,
datediff(日期, min(日期)over(partition by user_id order by 日期)) as diff
from try123
group by user_id, 日期
) as T
group by firstday
order by firstday;
解读如下:
  • 首先,使用子查询将原始数据表(假设为try123)按照用户ID和日期进行分组,并计算每个用户的第一天日期(firstday)和日期差(diff);
  • 接下来,外部查询根据firstday进行分组,并使用聚合函数sum和条件判断函数if来计算新增、次日、七日和三十日留存的数量。其中,if(diff=0,1,0)表示如果diff等于0,则返回1,否则返回0;
  • 最后,通过除法运算计算次日、七日和三十日留存率,即对应留存数量除以新增数量;
  • 最终的查询结果按照firstday进行排序,并显示新增、次日、七日和三十日留存的数量以及对应的留存率。


了解更多数据分析知识、与更多优秀的人一起进群交流请扫码



群码过期或者群满请添加客服微信 CDAshujufenxi 后拉您进群

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/161771
 
304 次点击