我正在嘗試使用Oracle 11g(dev中爲11.1,生產中爲11.2)進行數值分析,特別是對有三列感興趣的表格(時間戳,設備ID和值)的線性插值。如何使用Oracle SQL執行線性插值?
值列保存來自設備的數據(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的每個時間戳任一側的兩個最接近的時間戳。 發生null是因爲我沒有兩次設備002在01:00:00.000任意一側出現篡改,我不想推斷該值。
從我的理解我可以使用percentile_cont來做到這一點,但我不明白我在網上看到的例子。例如,percentile_cont使用的百分位數是從哪裏來的?
在此先感謝您的幫助!
感謝您的回答至今。我對Oracle分析函數非常陌生,我的數據並不像我給出的例子那樣整潔。例如,device1對device2上的每個值都有幾個值。對於一個設備,這些值的增量大約爲十分之一秒,而對於另一個設備則爲三分之一秒。編輯問題以提供更多詳細信息... – GLaDOS