Sql 分区上的最后一个_值

Sql 分区上的最后一个_值,sql,oracle,Sql,Oracle,我有一个包含水果、日期、价格、国旗列的表格 我用 第一个_值(价格)(按水果订单划分,按水果、日期划分)首先生成列价格 last_值(Price)(按水果顺序按水果分割,无界前一行和无界后一行之间的日期行)以生成列Price last Fruit Date Price Flag Price first Price Last Apple 6/1/2015 1.4 Yes 1.4 1.9 Apple 6/2/201

我有一个包含水果、日期、价格、国旗列的表格

我用 第一个_值(价格)(按水果订单划分,按水果、日期划分)首先生成列价格

last_值(Price)(按水果顺序按水果分割,无界前一行和无界后一行之间的日期行)以生成列Price last

Fruit   Date       Price    Flag    Price first   Price Last
Apple   6/1/2015    1.4     Yes       1.4           1.9
Apple   6/2/2015    1.5     Yes       1.4           1.9
Apple   6/3/2015    2.5     Yes       1.4           1.9
Apple   6/4/2015    3       Yes       1.4           1.9
Apple   6/5/2015    1.7     Yes       1.4           1.9 
Apple   6/6/2015    1.9     No        1.4           1.9
但我需要另一个栏目“Price Last Flag Yes”来提供没有Flag No的水果苹果的最新价格,在这种情况下,应该是2015年6月5日的价格

Fruit   Date       Price    Flag    Price first  Price Last  Price Last Flag Yes
Apple   6/1/2015    1.4     Yes       1.4           1.9        1.7
Apple   6/2/2015    1.5     Yes       1.4           1.9        1.7
Apple   6/3/2015    2.5     Yes       1.4           1.9        1.7
Apple   6/4/2015    3       Yes       1.4           1.9        1.7
Apple   6/5/2015    1.7     Yes       1.4           1.9        1.7 
Apple   6/6/2015    1.9     No        1.4           1.9        1.7
我不知道如何查询过滤掉函数中“no”标志的条件。我不想进行子查询。是否可以在函数中添加条件和过滤器?谢谢


我不想使用where子句,因为这样我就需要使用子查询。我还尝试了last_值(当Flag='Yes'然后Price end时的情况)(按水果顺序划分,按水果,日期),它也不起作用。由于某种原因,它会弄乱数据,有些行是空的

忽略空值
选项:

last_value(case when Flag = 'Yes' then Price end ignore nulls) 
over (partition by Fruit order by Date ...

顺便说一句,
partitionbyfruit,dateorderbyfruit,Date
将不起作用,它是
partitionbyfruit orderbydate
而不是添加一个
where
clauseyeah谢谢!这就是我需要的——忽略空值。这样它就可以作为一个过滤器。