黔驴技穷了,主要对空值函数不熟悉
select
m
,count(user_id)
from (
select
user_id
,min(date) m
from login
group by user_id
) a
group by a.m
#结果正确 但不带没有日期的值

select
b.date
,c2-ifnull(c1,0)
from (
select
date
,count(user_id) c2
from login
group by date
) b
left join (
select
a.date
,count(user_id) c1
from (
select
*
,min(date) over(partition by user_id) m
from login
) a
where a.date <>a.m
group by a.date
) c
on b.date =c.date