一直困扰的ORACLE SQL 有关问题

一直困扰的ORACLESQL 问题,求助START_CIname_id TIME_STAMP11933test012013-1-7 11:0111933test012013-1-7

一直困扰的ORACLE SQL 问题,求助
START_CI  name_id TIME_STAMP
11933   test012013-1-7 11:01
11933  test012013-1-7 13:18
11933  test012013-1-7 18:18
38165  test022013-1-7 8:36
38165  test022013-1-7 9:36
3244  test022013-1-7 13:20
38165  test022013-1-7 18:36
3210  test022013-1-7 23:39
测试表名为:TEST  三列如上:START_CI  name_id TIME_STAMP
想要的结果为:
11933   test012013-1-7 11:01
38165  test022013-1-7 8:36
3244 test02      2013-1-7 13:20
38165 test02      2013-1-7 18:36
3210 test02      2013-1-7 23:39
解释:
根据不同的name_id分组。合并START_CI相同的记录,取TIME_STAMP最小值,
但合并注意。不联系的不可合并,比如:
38165  test022013-1-7 8:36
38165  test022013-1-7 9:36
3244  test022013-1-7 13:20
38165  test022013-1-7 18:36
这四条记录,中间有条START_CI为3244 让teset02的用户 START_CI为38165变的不连续的行,只能合并前两行,对于test01用户前三行START_CI都是11933且都是上下行都是联系的11933,没有被其他不同的分隔开,可以合并一条 ORACLE?SQL?技术
[解决办法]

with t as
 (select t.*,
         case
           when t.START_CI <> lead(START_CI)
            over(order by rownum) and t.START_CI <> lag(START_CI)
            over(order by rownum) then
            1
           else
            0
         end flag
    from test t)
select START_CI, name_id, TIME_STAMP
  from (select t.*,
               row_number() over(partition by START_CI, flag order by TIME_STAMP) rn
          from t)
 where rn = 1;