题解 | #牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
https://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
select date,
sum(if(rn=1,1,0)) as new
from(
select user_id,
date,
row_number()over(partition by user_id order by date) as rn
from login
)a
group by date
order by date
思路:由题意可知,只有首次登陆的用户才是新用户,所以我们可以根据排序的窗口函数根据用户ID进行分区,日期进行排序,为每行数据进行排序,只有排序序号为1的才是要统计的新用户,
所以最后根据序号进行识别新用户,利用sum(if)计算新用户的个数
