Sql 分区上的最后一个_值
我有一个包含水果、日期、价格、国旗列的表格 我用 第一个_值(价格)(按水果订单划分,按水果、日期划分)首先生成列价格 last_值(Price)(按水果顺序按水果分割,无界前一行和无界后一行之间的日期行)以生成列Price lastSql 分区上的最后一个_值,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
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谢谢!这就是我需要的——忽略空值。这样它就可以作为一个过滤器。