Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何忽略Oracle11中增加值的行_Sql_Database_Oracle11g - Fatal编程技术网

Sql 如何忽略Oracle11中增加值的行

Sql 如何忽略Oracle11中增加值的行,sql,database,oracle11g,Sql,Database,Oracle11g,因此,我有一个表,其中有一个值列表,我需要按日期排序,忽略数字大于上一个数字的行。以下表为例: Date Value 01/01/2017 10 01/02/2017 9 01/03/2017 8 01/04/2017 10//Ignore this because previous entry is less(8<10) 01/05/2017 9... 仅仅使用一个查询就可以做到这一点吗 提前感谢您的帮助。您可以使

因此,我有一个表,其中有一个值列表,我需要按日期排序,忽略数字大于上一个数字的行。以下表为例:

Date            Value
01/01/2017      10
01/02/2017      9
01/03/2017      8
01/04/2017      10//Ignore this because previous entry is less(8<10)
01/05/2017      9...
仅仅使用一个查询就可以做到这一点吗

提前感谢您的帮助。

您可以使用:

我想您需要
lag()


所以基本上你是在寻找最长的趋势?请描述您试图实现的目标。不要只想忽略前面条目为lessBoth的行。非常感谢你们都很好
10
9
8
9
WITH cte AS (
  SELECT *, LAG(Value,1,0) OVER(ORDER BY Date) AS prev
  FROM your_table
)
SELECT *
FROM cte
WHERE Value > prev;
select value
from (select t.*, lag(value) over (order by date) as prev_value
      from t
     ) t
where prev_value is null or prev_value > value;