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