【今日刷题】SQL29 计算用户的平均次日留存率

2023-02-11  本文已影响0人  不懂球的2大业

题目

SQL29 计算用户的平均次日留存率

分析

# 对表进行自连接操作,q1代表所有刷题记录。q2左连接匹配,找出第二天还会再刷题的记录
select * 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)
输出结果
# 用count(q2.device_id) / count(q1.device_id) 替换上面代码的*
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_add(q1.date,interval 1 day)
上一篇下一篇

猜你喜欢

热点阅读