

先来讲解一下date_sub函数:

思路:
①联立两个表,筛选内容为日期间隔一天和用户
②采用外连接,确保分母的正确性
③计算留存率
(这个用户去重纯是题目的表格要求,没有什么可注意的)
select
count(q2.device_id) / count(q1.device_id) 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_sub(q1.date, interval 1 day)
2663

被折叠的 条评论
为什么被折叠?



