我隨時都有傳感器的資料。我想按傳感器對它們進行分組并計算 X 分鐘或小時的平均值。我試圖自己做,但沒有奏效。你可以檢查小提琴 [here][1]。
簡而言之,我必須針對 X 分鐘或小時顯示傳感器明智的移動平均資料。[1]:http : //sqlfiddle.com/# !17/ e3101/14
謝謝
uj5u.com熱心網友回復:
我不清楚你在追求什么輸出,但也許你正在尋找range視窗函式的條件:
select r.sensor_id,
r.reading,
r."timestamp",
AVG(r.reading) OVER (partition by r.sensor_id
ORDER BY r."timestamp"
range between interval '5 minute' PRECEDING
AND CURRENT ROW) as avg_reading
from sensor_readings r
order by r.sensor_id, r."timestamp"
在線示例
uj5u.com熱心網友回復:
您需要磁區子句而不是 group by 子句。試試這是否有效。
Select sensor_id,
reading,
date_trunc('hour', "timestamp") AS sensor_reading_hour,
AVG(reading) OVER(PARTITION BY sensor_id ORDER BY date_trunc('hour', "timestamp")) as avg_reading
from sensor_readings
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387423.html
標籤:sql PostgreSQL的
