SQL计算次日留存率

  • Post author:
  • Post category:其他


实际业务中(特别是电商业务分析),需要计算今天用户登录,第二天还会登录的用户所占的比率,也就是次日留存率的概念。

计算思路就是将表进行自连接(条件是左表日期+1=右表日期),满足条件的记录数就是次日登录的用户总数,再除以左表记录总数(用户数)就是次日留存率。

select count(date2) / count(date1) as avg_ret
from (
    select
        distinct a.uid,
        a.date as date1,
        b.date as date2
    from tableName a
    left join(
        select distinct uid, date
        from tableName
    )b
    on a.uid=b.uid
    and date_add(a.date, interval 1 day)=b.date
)t



版权声明:本文为weixin_50646402原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。