横沥做网站,百度logo在线设计生成器,湖北网站建设营销qq,网站建设标新立异题1#xff1a;
现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。请你取出相应数据。
示例#xff1a;question_practice_detail
iddevice_idquest_idresultdate12138111wrong2021-05-0323214112wrong2021-05-0933214113wrong2021-06-1546543111right2021…题1
现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。请你取出相应数据。
示例question_practice_detail
iddevice_idquest_idresultdate12138111wrong2021-05-0323214112wrong2021-05-0933214113wrong2021-06-1546543111right2021-08-1352315115right2021-08-1362315116right2021-08-1472315117wrong2021-08-15…… 根据示例你的查询应返回以下结果
avg_ret0.3000
思路分析所谓次日留存指的是同一用户在本题中则为同一设备即device_id在当天和第二天都进行刷题
而次日还会来刷题的概率去重的数据表中符合次日留存的条目数目/去重的数据表中所有条目数目所以这里需要查询这两个的数目。
这里使用到了DATE_ADD() 函数可以巧妙的统计到后一天也刷题的个数。
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_idq2.device_id and q2.dateDATE_ADD(q1.date,interval 1 day)