我正在研究一个预测模型,并且在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(),但它不适用于我的值。
答案 0 :(得分:0)
您可以使用幂运算来执行此操作。我想你想要
select t.*,
numreqs * power(1.12, row_number() over (order by date)) as cumulative_value
from t