实际业务中(特别是电商业务分析),需要计算今天用户登录,第二天还会登录的用户所占的比率,也就是次日留存率的概念。
计算思路就是将表进行自连接(条件是左表日期+1=右表日期),满足条件的记录数就是次日登录的用户总数,再除以左表记录总数(用户数)就是次日留存率。
select count(date2) / count(date1) as avg_retfrom (selectdistinct a.uid,a.date as date1,b.date as date2from tableName aleft join(select distinct uid, datefrom tableName)bon a.uid=b.uidand date_add(a.date, interval 1 day)=b.date)t
如果觉得《SQL计算次日留存率》对你有帮助,请点赞、收藏,并留下你的观点哦!