日期:2014-05-17  浏览次数:20611 次

面试回来,肺都气炸了!
进去后,自信满满的做了到SQL提,接着跟HR一直聊着.
后来HR看了下答案说我的那道SQL题目做错了.
当时我就很奇怪不可能错的.
先附上SQL题目然后再记录下跟HR的奇葩交谈过程.

------解决方案--------------------
HR很多都是SB ,根本不懂技术,面试之前还要先跟你侃侃。  一个板砖直接拍迷糊了。。。。。。。。。
------解决方案--------------------
hr肯定是看了答案,你的和答案不一样。

关键是sql语句的写法变化很大,对的答案不止一个,所以他就以为你写错了。真是无语,这个应该直接让技术人员面试的。
------解决方案--------------------
说句实话,楼主写的这个语句真不是人家要的答案。
------解决方案--------------------
HR还会技术啊,牛逼啊,你问问她怎么写才正确
------解决方案--------------------
你的答案是有问题的,应该这样:


select ID,property,[date]
from (select *,rn=ROW_NUMBER() over(partition by property order by [date]) from tbpro)t
where rn<=2
and property in (select protype  from  tbpro  group by property  having count(id)>1)

------解决方案--------------------
你的语句确实不是人家要的,人家要的是你先找出重复的记录,然后再从这些重复的记录里面,找到每种情况时间排前面的两个,你的答案是就输出所有重复中排在前面的两个
------解决方案--------------------
lz:
   可能别人想考你  ROWNUMBER() OVER() 的用法
------解决方案--------------------
1)分组
2)每组取两条最新记录

所以你的答案是错误的
------解决方案--------------------
按property分组,按date升序排序取每组前两条,你的理解应该有问题
------解决方案--------------------
分组取前N条百度一下到处都是,赶快来给我道歉吧。
------解决方案--------------------
26 27楼的回复一下子让这帖变成内涵帖。。。。
------解决方案--------------------

难道是楼上面的?
敢问正确答案为何要加“where property in (select distinct(property) from tbpro)”。
我怎么感觉这个是不需要的呢,虽然不影响结果。
------解决方案--------------------
引用:
骚年,你说说姐怎么奇葩了


这位高手怎么能是HR呢?HR怎么能这么厉害呢?!
------解决方案--------------------
你理解题目真的理解错了。。这题没你想的那么简单,是各取前2条。。
------解决方案--------------------
HR的是正确的,你不理解题意
首先是Property有相同的才列出
其次是每个Property只列时间最早的前两条
------解决方案--------------------
题目描述得非常清楚了,不知道楼主怎么理解的有歧义。而且你是被面试的,你干嘛教训HR呢,还是要低调谦虚点,毕竟是人家雇佣你,你是被雇佣的