题解 | #思路#

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

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

select t1.date_1 date,count(t2.user_id) new from 
(select distinct date date_1 from login order by date asc) t1 
left outer join 
(select user_id,min(date) date_2 from login group by user_id) t2
on t1.date_1=t2.date_2 group by t1.date_1
借鉴其他大佬的思路,整理自己的错误点。这道题最开始思路不清晰,但其实只要找到所有的时间,再确定每个用户最早登陆日期,按日期字段进行连接,统计用户个数即可
写的过程中,错误点在select出现非聚合字段,却忘记group by了,其次count(user_id)写成了count(*),为什么不能用count(*)是因为我对于所有日期表左连接了用户表,即使没有user_id,也会有一条记录,造成统计错误,所以要count(user_id)才正确!注意哦!
感觉自己对于连接掌握的还不熟练,继续加油。
还有case when的使用。
全部评论

相关推荐

11-02 09:49
已编辑
货拉拉_测试(实习员工)
热爱生活的仰泳鲈鱼求你们别卷了:没事楼主,有反转查看图片
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务