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

部分字段重复的数据的按一定条件的筛选
某个表中有数据如附件所述:
说明:[LOGID]为标识列
该表的数据结构可以描述为:公司内的不同级别[seclevel]的人[operator]对某一些事务[requestid]的操作 [time]记录[LOGID].

需求是: 需要找出每个事物中,级别最高的人的操作记录的LOGID,如果最高级别有两个以上的人员,那么取第一次操作的记录 LOGID

另:给几个典型的 requestid   in (68361,63775,24544) 测试
requestid operator seclevel time LOGID
24544 1100 50 2012-11-30 11:54:25 88484
24544 1095 70 2012-11-30 12:19:17 88511
24544 168 70 2012-12-10 16:56:10 94937
24544 1107 30 2012-12-11 08:45:32 95006
63775 571 70 2013-06-05 11:14:54 248878
63775 168 70 2013-06-05 15:59:54 249555
63775 571 70 2013-06-13 10:33:27 256047
63775 571 70 2013-06-20 14:30:25 264887
63775 168 70 2013-06-25 15:55:41 270762
63775 638 30 2013-06-28 10:14:07 274371
68361 571 70 2013-06-25 09:32:25 269672
68361 571 70 2013-07-04 09:47:20 280945
68361 168 70 2013-07-04 17:19:28 281814
68361 638 30 2013-07-08 13:36:10 284312


测试数据集下载  http://pan.baidu.com/share/link?shareid=3780299139&uk=1712553852


如何写查询SQL呢? 
需求 行业数据

------解决方案--------------------
这种写法好看些:
select a.requestid,a.loginID from 表名 a,(select min(time) as time1,requestid from 表名 group by requestid) b  where a.requestid=b.requestid and a.time= b.time1 order by a.requestid