0
价值 一种 b
六月 400 50 20
七月 空值 25 10
八月 空值 50 20

我想使用现有值预测未来几个月。

我需要使用计算 400 + 50 - 20 更新 7 月的 NULL 值并获得值 430。然后我需要在计算 (430 + 25 - 10) 中使用 7 月的值 430,它应该返回 445 的值八月。

在给定列 a 和 b 以及初始值的情况下,如何使用 postgreSQL 填充每个月的值列?

4

1 回答 1

0

如果要查询,可以使用:

select t.*,
       ( sum(value) over () +
         sum(a + b) over (order by month) - (a + b)
       ) as imputed_value
from t;

注意:这假设它month确实以某种方式存储,以保留日期 - 例如一个月的第一天。如果是字符串,可以使用:

select t.*,
       ( sum(value) over () +
         sum(a + b) over (order by to_date(month, 'Mon')) - (a + b)
       ) as imputed_value
from t;
于 2021-06-23T11:51:33.783 回答