1、row_number窗口函数 + sum条件判断

select date,
sum(case when rk = 1 then 1 else 0 end) as new
from (
    select user_id, date,
    row_number()over(partition by user_id order by date) rk
    from login
) t
group by date

2、ifnull函数

(评论区看到其他人的解法,个人感觉较为麻烦)

(单纯在这里补充一下ifnull函数的用法)

  • IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值
SELECT IFNULL(NULL,'B');    -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO