Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sql中运行累积返回_Sql_Return_Finance - Fatal编程技术网

在sql中运行累积返回

在sql中运行累积返回,sql,return,finance,Sql,Return,Finance,希望拥有一系列每日回报的连续累积回报?我知道这可以用exp和sum来解决,但是我的返回序列不是用LN来计算的 希望在不使用循环的情况下解决这个问题,因为它们在sql中非常低效。 让它跑得快是很重要的 数据集: 期望结果 这就是你想要的吗 select t.*, (select exp(sum(log(1 + return))) - 1 from table t2 where t2.date <= t.date ) as cume

希望拥有一系列每日回报的连续累积回报?我知道这可以用exp和sum来解决,但是我的返回序列不是用LN来计算的

希望在不使用循环的情况下解决这个问题,因为它们在sql中非常低效。 让它跑得快是很重要的

数据集:

期望结果

这就是你想要的吗

select t.*,
       (select exp(sum(log(1 + return))) - 1
        from table t2
        where t2.date <= t.date
       ) as cumereturn
from table t;
我认为任何数据库都没有内置的
product()
aggregation函数。唉。

(1+r)(1+r)(1+r)
转换为

exp(log(1+r) + log(1+r) + log(1+r))
不起作用,因为1+r可能为负值。
负日志未定义。i、 e.回报率低于-100%

您现在有机会解决您的问题,因此它具有有用的信息。样本数据、期望结果和您尝试过的SQL都使问题变得更好。您将如何处理负面影响?可交易产品不会低于0。WTI最近做出了错误的判断,但无论选择何种方法,都无法计算负产品的回报率。所以,是的,你可以使用日志。
exp(log(1+r) + log(1+r) + log(1+r))