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

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

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
全部评论

相关推荐

12-19 20:28
已编辑
门头沟学院 Java
美团履约 全栈工程师 (n+1)*15.5 其他
点赞 评论 收藏
分享
11-16 01:13
宜春学院 Java
点赞 评论 收藏
分享
做黑夜里的那道光:两年电赛完赛没必要写,纯扣分
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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