题解 | #计算用户的平均次日留存率
计算用户的平均次日留存率
http://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
平均次日留存率=同一用户第二天有答题的天数/所有答题天数
重点: 1.怎么识别出来某个用户第二天也有答题。 2.同一天同一用户多次答题只记一次,即按天数计算概率,因此要去重。对date,device_id的组合进行去重
对同一张表进行自链接,用q1.device_id = q2.device_id 和q2.date=DATE_ADD(q1.date, interval 1 day)作为链接条件。
select round(count(q2.date) / count(q1.date),4) as avg_ret from (select distinct device_id,date from question_practice_detail) as q1 left join (select distinct device_id,date from question_practice_detail) as q2 on q1.device_id = q2.device_id and q2.date=DATE_ADD(q1.date, interval 1 day)

查看15道真题和解析