select a.date, count(b.user_id) from
(select distinct date from login) a
left join
(select user_id,min(date) date from login group by user_id) b
on a.date=b.date
group by a.date
order by a.date
  • 得到所有日期的表格 a
  • 得到所有用户的第一次登陆日期 b
  • 连接两个表,以a为连接基准
  • 使用聚合函数得到结果