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

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

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

要求

请你写出一个sql语句查询每个日期登录新用户个数,并且查询结果按照日期升序排序

解题思路

本题的核心问题在于什么条件下为新用户,假设我们已经知道了新用户的数据,那么在与login表左连接就可以计算出每日新增的用户情况.

新用户条件

假如我们在写注册接口的时候,是不是需要存入用户的注册时间.假设我们有一张user表正好存了注册时间,那么根据题目要求先对user表注册时间字段分组,再COUNT(user_id) 是不是就可以得到结果?现在只有一个登录记录表,取每个用户的登录最小值就可以视为注册时间,当然了如果有用户表还是得以用户表的注册时间分组统计为妥

新增用户的SQL
SELECT user_id,MIN(date) date_min FROM login GROUP BY user_id

完整SQL

SELECT l1.date,COUNT(l2.user_id) AS new FROM (SELECT date FROM login GROUP BY date) l1 
LEFT JOIN (SELECT user_id,MIN(date) date_min FROM login GROUP BY user_id) l2 ON l2.date_min = l1.date
GROUP BY l1.date
全部评论

相关推荐

头像
01-29 18:11
海南大学 Java
奔跑的suechil...:单从项目看这个简历不怕被问穿吗 带微服务的项目需要相当多的项目理解和经验诶
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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