比较简洁的写法 select date,sum(ne) new from (select *,if(first_value(date)over(partition by user_id order by date)=date,1,0) ne from login) l1 group by date;