留存率:
是用户分析的核心指标之一,留存问题也是一个经常考的题目。
问题:
现场写一道SQL:给定用户表Users,求出每个日期对应的活跃用户数、次日留存用户数、次日留存率。
指标定义: 某日活跃用户数:某日活跃的去重用户数。 N日留存用户数:某日活跃的用户在之后的第N日活跃用户数。 N日活跃留存率:N日留存用户数/某日活跃用户数
例如: 2021/05/01 日去重用户数为10000,这批用户在2021/05/03日仍有7000人活跃,则3日活跃留存率为7000/10000=70%
第一步:
N日活跃留存率= N日留存用户数/某日活跃用户数。我们先得到每日活跃用户数
输出结果:
第二步:
再得到次日留存用户数。
输出结果:
次日留存,3日留存,7日留存等只需要更改日期相差的天数即可。 DATEDIFF(b.log_ date,a.log date)=1改成=3或者=7
第三步:
最后通过第二步得到的次日留存用户数,除以第一步得到的每日活跃用户数,得到最终结果。
输出结果:
扩展题:得到3日留存率
最后:
N日活跃留存率=N日留存用户数/某日活跃用户数
N日留存用户数:我们将表进行自连接,分别命名为a、b,然后计算b表登录日期与a表登录日期的差值,其中差值为N的,所对应的用户就是N日留存用户数。
某日活跃用户数:直接通过COUNT(DISTINCT usr_ id), 来计算活跃的用户数,COUNT这种聚合函数的基本用法要很熟练的运用哦~
接下来我也会更新SQL的基础知识的
如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,
咱们下期见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)