我正在尝试使用 Oracle 11g(开发中的 11.1,生产中的 11.2)进行数值分析,特别是对具有三列感兴趣的表的线性插值:时间戳、设备 ID 和值。
值列保存来自设备的数据(id 为 deviceid),在时间戳中给定的时间获取。例如,这是伪造的数据,但它给出了这样的想法:
time | deviceid | value
----------------|------------|-----------
01:00:00.000 | 001 | 1.000
01:00:01.000 | 001 | 1.030
01:00:02.000 | 001 | 1.063
01:00:00.050 | 002 | 553.10
01:00:01.355 | 002 | 552.30
01:00:02.155 | 002 | 552.43
来自设备 001 的时间戳与设备 002 的时间戳不匹配,但我需要将设备 001 和 002 的值放在一行中,并带有一个时间戳,与设备 001 的时间戳匹配。我想要结束的是像这样的东西:
time | device 001 | device 002
----------------|--------------|------------
01:00:00.000 | 1.000 | null
01:00:01.000 | 1.030 | 552.520
01:00:02.000 | 1.063 | 552.405
其中设备 002 的值是基于设备 002 的值在设备 001 的每个时间戳两侧的两个最接近的时间戳处收集的值进行线性插值的。发生空值是因为我在设备 002 的任一侧都没有两个时间戳01:00:00.000,我不想推断这个值。
据我了解,我可以使用 percentile_cont 来做到这一点,但我不明白我在网上看到的例子。例如, percentile_cont 使用的百分位数来自哪里?
在此先感谢您的帮助!