题解 | #思路#

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

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

相关推荐

frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
找工作时遇到的神仙HR
点赞 评论 收藏
分享
认真搞学习:28小登的建议,投算法岗不要写什么物理竞赛,互联网+,多写点项目,用什么算法做了什么。还有本科算法是不可能的开发你这个也没有项目啊
点赞 评论 收藏
分享
我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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