我是 SQL 新手,试图学习如何对时间序列数据进行读取查询。有人可以给我一个关于如何将间隔时间序列数据重新采样为 postgres 读取查询的每小时平均值的提示吗?
我的表名为 building_data ,其中有几列名为time, metric, value, kv_tags, m_tags
time
是我的日期/时间戳列,我试图查看是否可以将value
列中的数据重新采样为每小时平均值。下面WHERE
的查询是为了过滤掉我有兴趣查看数据的特定设备。如果这没有意义,我很抱歉。
对于第一个计时器,此 sql 查询似乎可以工作,但它没有包含一些以每小时平均值重新采样数据的过程,非常感谢任何提示。
SELECT
"time" AS "time",
metric AS metric,
value,
kv_tags,
m_tags
FROM building_data
WHERE kv_tags->'equip_name' = '["35201"]' AND
m_tags IS NOT NULL
ORDER BY time desc limit 1000
您可以使用time_bucket函数来制作它。
例子:
请注意,我正在简化查询,如果您想包含
kv_tags
并且m_tags
您还需要使用聚合函数或将它们添加到 group by 子句中。