【发布时间】:2017-03-24 18:57:12
【问题描述】:
假设我有一份日期和价格清单:
20170322 109.89
20170321 107.02
20170320 109.25
20170317 108.44
20170316 108.53
20170315 107.94
20170314 106.83
20170313 110.02
20170310 107.31
20170309 107.54
20170308 107.67
20170307 108.98
我需要的是,从最近的日期:20170322 (109.89),第一个日期/价格值高于原始值,即 20170313 (110.02)。请注意,这些是按日期的 DESC 顺序排列的
一整天都在这。
【问题讨论】:
-
请发布您的预期输出
-
所以:“原始”值(价格)为 108.98,价格上涨的第一个日期是 20170313,当时价格为 110.02。我们可能必须假设 20170307 是整个表中的第一个日期(否则它有什么特别之处?)完全不清楚的是你的意思是 从最近的日期 - 你不是说(并通过示例显示)您从最早的日期开始,并且您想要价格高于原始日期的第一个日期? 最近的日期在这一切中扮演什么角色?另外,如果价格从未高于原价,您想看看什么?
-
你有什么版本的Oracle?运行
SELECT * FROM V$VERSION找出答案。在 Oracle 12.1 及以上版本中,有一个非常简单的解决方案,MATCH_RECOGNIZE。
标签: oracle sorting next highest