/*
select date,
count(user_id)
from (select distinct date from login) a
left join (select user_id,min(date) first_date
    from login
    group by user_id) b on a.date=b.first_date
group by a.date
order by a.date
*/

with a as(
    select distinct date from login
),
b as(
    select user_id,min(date) min_date
    from login
    group by user_id
)

select a.date,
count(user_id)
from a
left join b on a.date=b.min_date
group by a.date
order by a.date

后面的临时表,不用写with