我有一个包含price
和date
列的表,按升序排序。我需要从中计算一个return = price ( i) / price ( i- 1)
的返回向量。时间不是基于时间的,这意味着一条记录可以是9h34,下一条记录是9h35,然后是9h40等...
我找到了以下主题: 用于计算返回数据结果的SQL语法 但是在Oracle中,我不能在子查询中使用order by,你能帮助我吗?
答案 0 :(得分:6)
在Oracle中,您可以使用lag
分析函数:
select
price / (lag(price) over (order by i))
, ...
from PriceHistory
此处,lag(price) over (order by i)
会在i
列排序的集合中返回上一行的价格。