题解 | #计算用户的平均次日留存率#

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

https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453

select
    (
        select
            count(distinct qpd1.device_id, qpd1.date)
        from
            question_practice_detail qpd1
        join question_practice_detail qpd2 on qpd2.date = adddate(qpd1.date, interval 1 DAY) and qpd1.device_id = qpd2.device_id
    ) / (
        select
            count(distinct dpq.device_id,dpq.date)
        from
            question_practice_detail dpq
    );

分两步 (用户当天答过题,第二天还来答题的人天数)/(用户答题的人天数)

这里计算人数不对,因为一个人可能一天有多条答题记录,如果第二天也答题了,只能算一条

所以要统计(distinct device_id,date)来对人天数进行去重统计

全部评论

相关推荐

06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务