题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
select count(q1.device_id)/count(q2.device_id)
from
(select distinct device_id,date from question_practice_detail)as q2
left join
(select distinct device_id,date from question_practice_detail)as q1
on q1.device_id = q2.device_id and q1.date = DATE_ADD(q2.date,interval 1 day)
这个题目太难了,首先就是没有办法计算第二天仍然来答题的人数,第二个再看完答案后,写代码的时候,如果在from后面的两个集合q2和q1顺序也不能倒置了,否则计算就无法识别。默认leftjoin前面的集合为分母,后面的集合为分子。通过相同的ID来确认1集合里面的date比集合2里的天数大1,(+1)。这个思路很巧妙,要牢记,很多网站统计用户留存率应该经常用到的计算方法!!!

查看10道真题和解析
SHEIN希音公司福利 256人发布