Oracle SQL 累积产品
Oracle SQL Cumulative Product
我有一个有点类似的问题:MySQL cumulative product group by 但我无法获得适合我的情况的建议解决方案。
我有 5 个月的百分比变化值,我想将其应用于静态值。我希望所有月份的结果值都是累积的。
Report_Month
PCT_Change
Initial_Value
8/1/2021
0.1202
0.88
9/1/2021
-.0426
10/1/2021
-0.0794
11/1/2021
0.0726
12/1/2021
0.1182
如果我在 Excel 中进行计算,输出将如下所示:
Report_Month
PCT_Change
Value
8/1/2021
0.1202
0.985776
9/1/2021
-.0426
0.943781942
10/1/2021
-0.0794
0.868845656
11/1/2021
0.0726
0.931923851
12/1/2021
0.1182
1.04207725
但是,当我使用 exp(sum(ln(x))) 方法时,我得到的并不是这样。这是使用 exp(sum(ln(0.88*(1+pct_change))) over (order by report_month)).
的输出
Report_Month
PCT_Change
Value
8/1/2021
0.1202
0.9857
9/1/2021
-.0426
0.8305
10/1/2021
-0.0794
0.6728
11/1/2021
0.0726
0.6351
12/1/2021
0.1182
0.6249
如有任何帮助,我们将不胜感激。
谢谢,
克里斯
Initial_Value
的值必须乘以SUM()
window函数的结果,所以正确的表达式是:
0.88 * EXP(SUM(LN((1 + pct_change))) OVER (ORDER BY report_month))
参见demo。
我有一个有点类似的问题:MySQL cumulative product group by 但我无法获得适合我的情况的建议解决方案。
我有 5 个月的百分比变化值,我想将其应用于静态值。我希望所有月份的结果值都是累积的。
Report_Month | PCT_Change | Initial_Value |
---|---|---|
8/1/2021 | 0.1202 | 0.88 |
9/1/2021 | -.0426 | |
10/1/2021 | -0.0794 | |
11/1/2021 | 0.0726 | |
12/1/2021 | 0.1182 |
如果我在 Excel 中进行计算,输出将如下所示:
Report_Month | PCT_Change | Value |
---|---|---|
8/1/2021 | 0.1202 | 0.985776 |
9/1/2021 | -.0426 | 0.943781942 |
10/1/2021 | -0.0794 | 0.868845656 |
11/1/2021 | 0.0726 | 0.931923851 |
12/1/2021 | 0.1182 | 1.04207725 |
但是,当我使用 exp(sum(ln(x))) 方法时,我得到的并不是这样。这是使用 exp(sum(ln(0.88*(1+pct_change))) over (order by report_month)).
的输出Report_Month | PCT_Change | Value |
---|---|---|
8/1/2021 | 0.1202 | 0.9857 |
9/1/2021 | -.0426 | 0.8305 |
10/1/2021 | -0.0794 | 0.6728 |
11/1/2021 | 0.0726 | 0.6351 |
12/1/2021 | 0.1182 | 0.6249 |
如有任何帮助,我们将不胜感激。
谢谢, 克里斯
Initial_Value
的值必须乘以SUM()
window函数的结果,所以正确的表达式是:
0.88 * EXP(SUM(LN((1 + pct_change))) OVER (ORDER BY report_month))
参见demo。