2017-04-12 63 views
0

我有表:甲骨文选择是否值小于前

enter image description here

如何选择ID形式时值之后比以前的值以下(预期的结果是ID = B2和C1)此表。谢谢你

+1

在什么顺序的基础上?你意识到在RDBMS中,表是无序的一组行。你必须指定一个订单,根据哪一行被称为**之前或之后**另一个 – GurV

+0

订单由TIME col,sir – JimmyN

+1

在oracle中有'LAG'和'LEAD'函数可以让你查询超过一次一张表中的一行。 – Nitish

回答

1

你可以使用窗口函数lead获取最后一行的值,并检查当前行的值是否小于此值。您也可以以类似的方式使用lead来获取下一行的值。

select distinct ID 
from (
    select t.*, 
     lag(value) over (
      partition by ID order by time 
      ) as last_value 
    from your_table t 
    ) t 
where value < last_value; 
+0

非常感谢你,这就是我想要的 – JimmyN

+0

@JimmyN - 不客气 – GurV