sql练习-- 计算用户的平均次日留存率

描述

题目:现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。请你取出相应数据。
 
示例:question_practice_detail
id device_id quest_id result date
1 2138 111 wrong 2021-05-03
2 3214 112 wrong 2021-05-09
3 3214 113 wrong 2021-06-15
4 6543 111 right 2021-08-13
5 2315 115 right 2021-08-13
6 2315 116 right 2021-08-14
7 2315 117 wrong 2021-08-15
……        
根据示例,你的查询应返回以下结果:
avg_ret
0.3000
select count(date2)/count(date1) as avg_ret
from(
    select 
        distinct q.device_id,
        q.date date1,
        u_d.date date2
        from question_practice_detail as q 
        left join(
            select distinct device_id,date
            from question_practice_detail
        )as u_d
        on q.device_id = u_d.device_id
        and date_add(q.date,interval 1 day) = u_d.date
)lat

 

posted @ 2022-09-23 02:35  兴儿  阅读(76)  评论(0)    收藏  举报