提供另一种解法:

  1. 先得到所有日期表select distinct date from login;
  2. 然后左连接新用户首次登陆的日期表(select user_id, min(date) first_date from login group by user_id);
  3. 归类统计日期出现的次数.

MySQL代码如下:

select a.date, count(b.user_id) new
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