现在有一个表(分区表,每分钟数据增加1000条记录以上的分区表),里面有一个整形字段A;
欲取出排序后,两条记录间A的 差值 大于 2 的 所有记录(满足条件的两项都要)。
如:
A
1
3
6
8
9
12要选出:
A
1
3
6
9
12大虾们指点指点,分不够再加:-)

解决方案 »

  1.   

    select aa.a
       from 
         (
          select a,abs(lag(a,1,0) over (order by  a)-a) b
              from test
          ) aa
       where aa.b>2
      

  2.   

    忘记了,你应该是前后两条纪录都要的
    select aa.a
       from 
         (
          select a,abs(lag(a,1,0) over (order by  a)-a) b,abs(lead(a,1,0) over (order by  a)-a) c
              from test
          ) aa
       where aa.b>2 or aa.c>2