牛客网打卡:SQL29 计算用户的平均次日留存率
解题思路
题目给出的意思:
不考虑用户的答题情况,只考虑是否答题了
也就是选出两张表,第一张是当天的答题情况,第二张是第二天的情况
时刻理解新的虚拟表和使用的虚拟表的区别和对比
使用left join 或者其他的连接方式后已经更改了原有的结构了如果在外层使用原有的表名,对字段进行索引,得到的是连接表后更改以后的表的数据
select count(t2.device_id) / count(t1.device_id) avg_cntfrom (select distinct device_id,date from question_practice_detail) t1left join (select distinct device_id,date from question_practice_detail) t2on t1.device_id=t2.device_id and t1.date+1=t2.date