日期:2014-05-20  浏览次数:20787 次

前几天面试遇到的一道面试题。
问题一:hibernate一对多级联查询中如何设置
问题二:oracle中如何实现分页查询
问题三:10万条数据,编号1到100W,如果找出其中重复数据
问题四: 线程问题JDK1.5中的标记位请简单介绍下
除了问题三,其它的都好说,问题三如何解决?

------解决方案--------------------
select test_name from testlog group by (test_name) having count(id)>1呵呵 我还是写个列子吧这是名字重复的数据,这个名字可以改成你想要选择的重复数据比如名字和年龄则可以写成
select test_name from testlog group by (test_name,age) having count(id)>1就OK了
------解决方案--------------------
其实人家之所以说的这么简单,就是想看你能不能想到高效率查询这方面。
如果不是让你写一个算法的话,单纯的数据查询,把数据都储存在内存里面是最合适的。
这个没说是数据库里面,所以我想并不是考的sql语句,因为考sql语句的话用不着说10W条数据。
我推测的一种结果应该是放到一个map或者数组里面,编号为1到100W。
顺序读取,读到一个数字,数组结果+1,最后遍历一边数组,结果大于1的数组成员输出数组号。
这样只不要遍历2遍100W的数据,算法上不知道有没有更高效的。