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

#对原始数据进行去重
with data as
(
    select distinct
    device_id
    ,date
    from question_practice_detail
)

select
sum(if(datediff(next_date,date)=1,1,0))/count(device_id) as avg_ret
from
(
    select
    device_id
    ,date
    #每一个日期跟一个next_date,没有的话用0补充,确保后续count正确
    ,ifnull(lead(date,1)over(partition by device_id order by date),0) as next_date
    from data
)a



全部评论

相关推荐

点赞 评论 收藏
分享
鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
07-02 13:52
武汉大学 golang
骗你的不露头也秒
牛客87776816...:😃查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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