Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 希望填充两个连续行之间的值以及postgres中另一列的相应值_Postgresql_Interpolation_Linear Interpolation - Fatal编程技术网

Postgresql 希望填充两个连续行之间的值以及postgres中另一列的相应值

Postgresql 希望填充两个连续行之间的值以及postgres中另一列的相应值,postgresql,interpolation,linear-interpolation,Postgresql,Interpolation,Linear Interpolation,我想我有一个简单的问题,但我不确定它在postgreSQL查询中的实现 我已经有一张我正在使用的桌子,如下所示: 我希望填写两个连续风速之间的值及其对应的功率值,以便在CTE(通用表表达式)中使用这些值以供进一步使用。(另外,我不想在数据库中创建额外的表) 我所看到的结果如下: 如果风速值之间始终存在0.5的增量,那么我认为类似的方法会起作用: select power_curve_id, generate_series (wind_speed, wind_speed + 0.49,

我想我有一个简单的问题,但我不确定它在postgreSQL查询中的实现

我已经有一张我正在使用的桌子,如下所示:

我希望填写两个连续风速之间的值及其对应的功率值,以便在CTE(通用表表达式)中使用这些值以供进一步使用。(另外,我不想在数据库中创建额外的表)

我所看到的结果如下:


如果风速值之间始终存在0.5的增量,那么我认为类似的方法会起作用:

select
  power_curve_id,
  generate_series (wind_speed, wind_speed + 0.49, 0.01) as wind_speed,
  power_kw +
    (lead (power_kw) over (partition by power_curve_id order by wind_speed) - power_kw) / 50 *
    generate_series (0, 49) as power_kw
from power p

如果这不是一个安全的假设,请说明。。。有很多方法

如果风速值之间的增量始终为0.5,那么我认为类似的方法会起作用:

select
  power_curve_id,
  generate_series (wind_speed, wind_speed + 0.49, 0.01) as wind_speed,
  power_kw +
    (lead (power_kw) over (partition by power_curve_id order by wind_speed) - power_kw) / 50 *
    generate_series (0, 49) as power_kw
from power p

如果这不是一个安全的假设,请说明。。。有很多方法

这是一项学术活动吗?我问这个问题的原因是我可以在数据库中找到一种方法,但是使用一些包装器代码似乎更适合这个问题。并不是说SQL不能做到这一点,但如果有一种能够实现循环的编程语言,这会容易得多。谢谢你。不,这不是学术活动。这是一项实时工作,我们希望它是“在任何地方运行代码”之类的东西。这就是我说的我们不想对数据库做任何更改的原因。很高兴知道。您是否对编程解决方案持开放态度,还是这必须是纯SQL?它是否总是一个.5增量?如果可以这样假设,它就简化了问题。Hi Hambone,风速的增量是0.01。不确定编程解决方案是否有效,因为我计划在SELECT查询中使用此逻辑,该逻辑将从各个表中获取数据并给出一个指定结果。这是一个学术练习吗?我问这个问题的原因是我可以在数据库中找到一种方法,但是使用一些包装器代码似乎更适合这个问题。并不是说SQL不能做到这一点,但如果有一种能够实现循环的编程语言,这会容易得多。谢谢你。不,这不是学术活动。这是一项实时工作,我们希望它是“在任何地方运行代码”之类的东西。这就是我说的我们不想对数据库做任何更改的原因。很高兴知道。您是否对编程解决方案持开放态度,还是这必须是纯SQL?它是否总是一个.5增量?如果可以这样假设,它就简化了问题。Hi Hambone,风速的增量是0.01。不确定编程解决方案是否有效,因为我计划在SELECT查询中使用此逻辑,它将从相应的表中获取数据并给出一个指定的结果。我猜,就是这样。仅使用外部类型转换,这是SQL查询中使用的完美解决方案。谢谢你,汉伯恩。感谢您的努力。:-)很高兴它成功了。。。我也让非固定时间间隔的解决方案排队。如果你最终需要它,请告诉我。非常感谢你,哈姆农!我为什么不拒绝呢。我愿意探索你们拥有的更通用的解决方案,而不是坚持固定增量。我想,就是这样。仅使用外部类型转换,这是SQL查询中使用的完美解决方案。谢谢你,汉伯恩。感谢您的努力。:-)很高兴它成功了。。。我也让非固定时间间隔的解决方案排队。如果你最终需要它,请告诉我。非常感谢你,哈姆农!我为什么不拒绝呢。我愿意探索你们拥有的更通用的解决方案,而不是坚持固定增量。