尋求一系列日收益的運行累積回報?我知道這可以使用exp和sum來解決,但是我的返回序列不是使用LN計算的。在sql中運行累計回報
希望解決這個問題而不使用循環,因爲它們在sql中效率非常低。 使其快速運行非常重要。
數據集:
期望的結果
尋求一系列日收益的運行累積回報?我知道這可以使用exp和sum來解決,但是我的返回序列不是使用LN計算的。在sql中運行累計回報
希望解決這個問題而不使用循環,因爲它們在sql中效率非常低。 使其快速運行非常重要。
數據集:
期望的結果
這是你想要的嗎?
select t.*,
(select exp(sum(log(1 + return))) - 1
from table t2
where t2.date <= t.date
) as cumereturn
from table t;
爲exp()
和log()
的功能可能是您正在使用的數據庫不同。在許多數據庫中,你也可以使用:
select t.*, exp(sum(log(1 + return) over (order by date)) - 1
from table t;
我不認爲任何數據庫在product()
聚集功能的建立。唉。
轉換(1+r)(1+r)(1+r)
到
exp(log(1+r) + log(1+r) + log(1+r))
不起作用,因爲1個+ R可能是負的。 負號日誌未定義。即回報率小於-100%
你會如何處理負面? – 2017-09-08 03:48:57
您現在有機會解決您的問題,以便獲得有用的信息。示例數據,期望的結果和您嘗試的SQL都可以更好地提出問題。 – 2014-09-06 13:30:17