Sql 具有group by的oracle滞后函数

Sql 具有group by的oracle滞后函数,sql,database,oracle,Sql,Database,Oracle,我有一个查询,它忽略从上一个值增加的值。以下表为例: col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询: select col1 from (select col1, lag(col1) over (order by col2) as prev_value from

我有一个查询,它忽略从上一个值增加的值。以下表为例:

col1    col2    col3
5       1       A
4       2       A
6       3       A
9       4       B
8       5       B
10      6       B
现在进行以下查询:

select col1
from (select col1, lag(col1) over (order by col2) as prev_value
  from test
 ) 
where prev_value is null or prev_value > col1;
现在查询的工作原理与预期一样,它忽略col1=6、9和10的列,因为前面的值较小。现在,我试图解决的问题是,让它一组一组地做这件事。所以我只希望它忽略以前按col3分组的值。所以我确实希望忽略6和10,但不要忽略9,因为当按col3分组时,9不会有以前的值


任何帮助都将不胜感激

我想您只需要按分区即可:

select col1
from (select col1, lag(col1) over (partition by col3 order by col2) as prev_value
      from test
     ) 
where prev_value is null or prev_value > col1;

你真是神谕大师。几分钟后我会在这里接受