实际业务中(特别是电商业务分析),需要计算今天用户登录,第二天还会登录的用户所占的比率,也就是次日留存率的概念。
计算思路就是将表进行自连接(条件是左表日期+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 版权协议,转载请附上原文出处链接和本声明。