题解 | #思路#

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

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的使用。
全部评论

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务