将值乘以先前计算的值

时间:2019-10-17 17:28:43

标签: sql sql-server

我正在研究一个预测模型,并且在sql中随着时间的流逝而自动保持趋势。我想做的是将每行乘以先前得出的数字,然后将下一行乘以计算出的上一行。这是基本的可视化;

date          num_reqs  cumulative_value   cumulative value formula                                           
2019-10-01  246.4   276                  num_reqs * 1.12     
2019-10-02  246.4   309        previous cum_value * 1.12
2019-10-03  246.4   346        previous cum_value * 1.12
2019-10-04  246.4   388        previous cum_value * 1.12
2019-10-05  246.4   435        previous cum_value * 1.12

我尝试了lag()的一些变体,但我认为lag不允许累积。我也尝试过exp(),但它不适用于我的值。

1 个答案:

答案 0 :(得分:0)

您可以使用幂运算来执行此操作。我想你想要

select t.*,
       numreqs * power(1.12, row_number() over (order by date)) as cumulative_value
from t