题解 | #牛客每个人最近的登录日期(五)#
牛客每个人最近的登录日期(五)
https://www.nowcoder.com/practice/ea0c56cd700344b590182aad03cc61b8
13号登录的人里是12号的新用户的人数/12号的新用户数=新用户次日留存率 1,先求出每个用户的注册日期(min),left join on 匹配。 2.登陆日期和注册日期相减,统计时间间隔等于0的用户数就为当日的新用户数 sum(时间间隔=0) 3,时间间隔等于1的用户数就为前一天的新增用户的次日留存数,要把这个数据往上移动一格,要用开窗lead函数。 select date, ifnull(round(lead(sum(datediff(date,注册日期)=1),1) over(order by date)/sum(datediff(date,注册日期)=0),3),0) as p from login as t1 left join (select user_id,min(date) as 注册日期 from login group by user_id) as t2 on t1.user_id=t2.user_id group by date order by date;
