# 每个日期 新登录个数 /*SELECT dates.date, IFNULL(new_users.new, 0) AS new FROM ( SELECT DISTINCT date FROM login ) AS dates LEFT JOIN ( SELECT first_login_date, COUNT(*) AS new FROM ( SELECT user_id, MIN(date) AS first_login_date FROM login GROUP BY user_id ) AS first_logins GROUP BY first_login_date ) AS new_users ON dates.date = new_users.first_login_date ORDER BY dates.date;*/ select a.date,ifnull(b.new,0) new #由于是先统计后表连接所以会有空值 from (select distinct date from login) a left join (select first_date,count(user_id) new from (select user_id,min(date) first_date from login group by user_id) c group by first_date) b on a.date=b.first_date order by date /*select a.date, count(b.user_id) new #先连接后统计则空值直接记为0 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*/