2009-12-21 41 views
1

我有一張表,其中有列表pricedate,按升序排列。我需要從這個計算返回向量return = price (i)/price (i- 1)。時間不是基於時間的,這意味着一個記錄可以是在9h34,下一個9h35,然後9h40等等Sql =如何用時間序列的價格計算回報向量?

我發現了以下主題: SQL語法計算返回的數據 的結果,但在Oracle中,我不能在子查詢中使用順序,請問能否幫助我?

+2

伊拉塞馬:如果一個答案'完美地工作',繼續並接受答案。 – 2009-12-21 20:30:53

回答

6

在Oracle中,你可以使用lag解析函數:

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

這裏,lag(price) over (order by i)返回前行的價格,由i列訂購了一套。

+0

好的Andomar它工作得很好,謝謝! – user235693 2009-12-21 19:35:29