Sql =如何用时间序列的价格计算回报向量?

时间:2009-12-21 19:11:39

标签: sql oracle

我有一个包含pricedate列的表,按升序排序。我需要从中计算一个return = price ( i) / price ( i- 1)的返回向量。时间不是基于时间的,这意味着一条记录可以是9h34,下一条记录是9h35,然后是9h40等...

我找到了以下主题: 用于计算返回数据结果的SQL语法 但是在Oracle中,我不能在子查询中使用order by,你能帮助我吗?

1 个答案:

答案 0 :(得分:6)

在Oracle中,您可以使用lag分析函数:

select 
     price / (lag(price) over (order by i))
,    ...
from PriceHistory

此处,lag(price) over (order by i)会在i列排序的集合中返回上一行的价格。