在数据分析的面试过程中,常常会被问到求用户留存率的问题,本小节将会重点针对该问题进行讲解,首先我们得明白留存的定义,知道留存如何计算。先以网上一个小案例来进行讲解。
给定user_behavior表,要求查询次日,7日和30日用户留存率。
首先需要弄明白,留存的定义是什么?
现定为新用户第一次登录时间为第0天,新用户定义为第一次登录的用户,登录行为的代号为1。
次日留存率:第0天新增用户中,新增日之后的第1天还登录的用户数 / 第0天新增总用户数;
7日留存率:第0天新增用户中,新增日之后的第7天还登录的用户数 / 第0天新增总用户数;
30日留存率:第0天新增的用户中,新增日之后的第30天还登录的用户数 / 第0天新增总用户数;
注意:留存一般是离散的概念,不要求用户在N天内每天都登录
- 摘选出每天的新用户
- 列出每个新用户第一次登录的日期及此日期之后仍登录的日期
- 计算列出的登录日期之间的差值,如果相差1天,说明该新用户次日仍留存,如果相差7天,说明该新用户七日仍留存,以此类推
- 统计每天新用户的留存人数以及计算留存率
`user_behavior`
+-------------------+---------+