题解 | #牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
http://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
SELECT date,COUNT(d) new
FROM login l left join (SELECT user_id,min(date) d
FROM login
GROUP BY user_id
) m on l.user_id=m.user_id and l.date=m.d
GROUP BY date
ORDER BY date
由于没有新用户的日期需要输出0,那么子查询查询所有用户的第一次登录时间是不包含无新用户的日期,因此需要对包含所有日期的login表进行左连接。 父查询的count一定是对子查询的min(date)字段进行统计,这样有null的才不会统计进去 实际上并不严谨,因为login表并不一定包含所有日期
