0

我在我的 PostgreSQL 数据库中有调用时的函数

select * from schema.function_name($1,$2,$3);

返回类似于以下的表

calculation_date | value | increment
2020-01-01       |  1    |  0.5
2020-01-02       |  NULL |  NULL
2020-01-03       |  NULL |  NULL
2020-01-04       |  NULL |  NULL
2020-01-05       |  4    |  2
2020-01-06       |  NULL |  NULL
2020-01-07       |  NULL |  NULL
2020-01-08       |  8.5  |  1

正如你所看到的,从这个函数返回的数据可能是不同的。我想要做的是查询这个函数,以便value列 when NULL,根据列中最近填充的值递增地增加increment。所以在这个例子中,上表将转换为下表

calculation_date | value | increment
2020-01-01       |  1    |  0.5
2020-01-02       |  1.5  |  NULL
2020-01-03       |  2.0  |  NULL
2020-01-04       |  2.5  |  NULL
2020-01-05       |  4    |  2
2020-01-06       |  6    |  NULL
2020-01-07       |  8    |  NULL
2020-01-08       |  8.5  |  1

如果有人对我如何实现此输出有任何建议,我将不胜感激。我正在使用 v10。如果需要更多详细信息,请随时询问。

4

1 回答 1

0

我最终解决了这个问题,方法是在任何空值之前获取最后一个增量值,并将其乘以从该行日期到每个后续行日期的天数差 - 然后将其添加到前一个值。这在这种情况下有效,因为我保证每天都有时间序列。

于 2020-03-27T10:12:28.540 回答