题解 | #牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
http://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
1.利用窗口函数分组 user_id,排序 date,输出为1则表明是该用户初次登陆日期;
2.外层 select 利用 case when,如果排名为1则输出1,否则为0,最后求和,记得这一步要按日期分组,case when 结果为每日新登陆用户数
select a.date ,sum(case when a.ranking=1 then 1 else 0 end) as new from (select * ,dense_rank() over (partition by user_id order by date asc) as ranking from login) a group by a.date