在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