在PostgreSQL數據庫中有一個非常大的表,包含3列:SENSOR_ID,VALUE,TIMESTAMP。每5秒我有一個值用於不同的SENSOR_ID。我想以這樣的方式刪除行,即我每分鐘保持1 VALUE每SENSOR_ID。這樣我可以顯着減小表格的大小。用Postgresql以一分鐘的時間間隔刪除行
0
A
回答
0
delete from t
using (
select
sensor_id,
date_trunc('minute', "timestamp") as "minute",
min((extract(epoch from "timestamp")/12)::integer * 12) as "epoch"
from t
group by sensor_id, 2
) s
where
sensor_id = s.sensor_id
and
date_trunc('minute', "timestamp") = s.minute
and
extract(epoch from "timestamp")/12)::integer * 12 != s.epoch
+0
它工作,謝謝。 – sergi
0
這裏最有效的策略是創建一個函數來修剪當前分鐘的多餘部分,並在每次插入數據時執行該函數。
如果你不小心,修剪功能可以消除過量,並且可能會很貴。只有在插入數據時才運行它,僅在分鐘和數據中包含的SENSOR_ID限制速度範圍。
像這樣創建觸發器:
CREATE TRIGGER triggername
BEFORE INSERT OR UPDATE ON tablename
FOR EACH ROW
EXECUTE PROCEDURE functionname
使用您的首選語言創建功能,例如PLPGSQL。
+0
謝謝你的回覆。這是我將來可以實施的事情,但我期待的答案是由Clodoaldo Neto提供的。 – sergi
相關問題
- 1. 基於時間戳分鐘刪除行
- 2. 如何以15分鐘的時間間隔對分鐘進行分組
- 3. 以30分鐘的時間間隔創建時間序列
- 4. PostgreSQL中的時間分隔
- 5. LINQ體30分鐘間隔,以小時
- 6. 如何在excel中以3分鐘的時間間隔對行進行分組?
- 7. 組時間X分鐘,分裂在X分鐘間隔
- 8. 在一週秒鐘的時間間隔
- 9. 從時間C#刪除秒鐘部分
- 10. 時間除以小時數/分鐘
- 11. iphone中的分隔時間爲30分鐘間隔
- 12. 間隔5分鐘的時間爲15分鐘的時間間隔的平均數據
- 13. 轉換計時器時間間隔以秒和分鐘
- 14. 按時間間隔對分鐘進行分組
- 15. Python刪除分隔空間
- 16. 如何以5分鐘的時間間隔輸出?(mysql)
- 17. 以10分鐘的時間間隔顯示Toast消息
- 18. 在SQL中以5分鐘的時間間隔查找記錄
- 19. SQL Server:以15分鐘的時間間隔填充表
- 20. 以15分鐘爲增量格式的時間間隔
- 21. Discord.js以1個分鐘的間隔
- 22. PostgreSql刪除時間超出
- 23. 在一定的時間間隔後從表格中刪除數據。可以說(60分鐘)
- 24. 從日期時間平均前5分鐘的時間間隔
- 25. NSDate格式分隔時間和分鐘
- 26. VBA Excel - 以特定間隔刪除行
- 27. 間隔15分鐘的Timepicker
- 28. 時間戳比較刪除當MySQL時間戳>20分鐘
- 29. 回合Excel的時間差下一個15分鐘間隔
- 30. 在R中生成時間間隔,以分鐘爲單位
你能舉出時間戳的例子嗎? – SQLChao
如果您每分鐘有多個SENSOR_ID插入,您希望保留哪一個?最近的? – youngthing
@youngthing我認爲OP想要在00s發生的那些。塞吉,你不想平均這些價值觀來減少噪音,異常值的影響等,而不是僅僅丟棄那些? – mlt