标题党了
这几年时常面试别人,也被别人面过,关于SQL的问题是少不了的,老实说绝大多数问我的关于SQL的问题是很没有水平的,像什么分组取前三名之类的。我自己刚开始做面试官的时候,可能也问过"这他妈什么玩意"的傻逼面试题,不过时间长了,我觉得如下三道题基本就能知道你到底懂不懂SQL,不过根据我的经验,大多数人是不懂的。
三道题如下:
1.select * from t1 join t2 on t1.a = t2.a and t1.b = t2.b 和 select * from t1 left join t2 on t1.a = t2.a and t1.b = t2.b 这两个在结果集上有什么区别? ( 这个其实就是在问内连接和外连接的区别)
2.有一张表记录了用户登录的ID和时间,怎么找出每一个用户最长连续登录的天数?(这是个关于窗口函数的问题)
3.select count(a) from t1 和 select count(1) from t1 有什么区别?(null 的含义)
三道题若是都能讲出来道理,说明SQL基本上可以说很懂了
:-)