使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

爱数据精选
爱数据精选
爱数据精选
609
文章
0
评论
2021-05-2815:27:57 评论 1,279 636字
摘要

如何使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

存在一个表:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

输出新登录用户次日成功的留存率,即第一天登录后。第二天再次登录的概率。

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

代码:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

思路:(第一天登录的新用户并且第二天也登录的用户)/(总用户)即为新登录用户的次日成功的留存率总用户:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率每个用户第一天登陆的日子:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率在第一天登录的新用户并且第二天也登录的用户,以及第二天的日期:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率最后使用count (distinct *) 可以得到各个部分的人数。

新登用户数输出每个日期登录新用户个数:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

每个日期里面用户登录的数目:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

 

使用where字句找出新用户,思路是如果选取的日期正好等于用户登录的最小日期,而且用户id相同时,那么肯定就是这个日期登录的新用户:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率输出:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率2020-10-13没有新用户登录,应该输出为0的,这个语句却没有输出。但是login表的日期是完整的,所以我们考虑将login表当主表,上面查出来的表左连接到主表,顺序输出,并使用ifnull语句将null变成0,最后再加上一个order by语句,就可以得到题目想要的结果了:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率新用户的次日留存率

统计一下每个日期新用户的次日留存率:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

先算出每天的新用户中有多少个第二天还登陆了(当天时间 – 第一次登录时间差值为1 )

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

 

算出每天有多少个新用户:

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率将上面两步得出的表格进行连接,然后做除法算比率。(注意:0不能为分母要用case when 处理)

使用SQL输出次日成功的留存率、新登用户数、新用户的次日留存率

End.

作者:Blues

转载如果涉及作品、版权其他问题请联系我们第一时间删除微信号:lovedata0520)

更多文章前往首页浏览http://www.itongji.cn/

 

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: