题解 | #牛客每个人最近的登录日期(四)#

牛客每个人最近的登录日期(四)

http://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a

SELECT  t.date,
        COUNT(DISTINCT t1.user_id) AS new
FROM login AS t
LEFT JOIN
(
	SELECT  user_id,
	        MIN(date) AS min_date
	FROM login
	GROUP BY user_id
) AS t1
ON t.date = t1.min_date
GROUP BY t.date
ORDER BY t.date

通过子查询生成t1表,查询出每个user_id首次登录日期。
此时的t1表的date只含有每个用户首次登录的日期,因此不一定包含原表login中的所有日期,因此进行左连接。
连接后的表t1在一个日期中会产生很多重复的user_id,因此使用distinct函数去重,并按照日期分组,用count()计算每个组中存在的user_id个数。
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务