with t1 as (
    select date, count(1) as new
    from (
        select user_id, min(date) as date
        from login
        group by user_id
    ) temp
    group by date
), t2 as (
    select date
    from login
    group by date
)
select t2.date, ifnull(t1.new, 0) as new
from t2 left join t1 on t2.date=t1.date