如何解决postgres 读取查询重采样时间序列数据以获得每小时平均值
我是 SQL 新手,试图学习如何对时间序列数据进行读取查询。有人能给我一个关于如何在 postgres 读取查询中将间隔时间序列数据重新采样为每小时平均值的提示吗?
我的表名为 building_data
,其中有几列名为 time,metric,value,kv_tags,m_tags
time
是我的日期/时间戳列,我试图在其中查看是否可以将 value
列中的数据重新采样为每小时平均值。下面查询中的 WHERE
用于筛选出我有兴趣查看数据的特定设备。如果这没有意义,我深表歉意。
对于第一次使用这个 sql 查询似乎有效,但它没有包含一些过程来重新采样每小时平均值的数据,非常感谢任何提示。
SELECT
"time" AS "time",metric AS metric,m_tags
FROM building_data
WHERE kv_tags->'equip_name' = '["35201"]' AND
m_tags IS NOT NULL
ORDER BY time desc limit 1000
解决方法
您可以使用提取功能:
select
extract (hour from "time") "hour","time"::date "day",Avg(value)
from building_data
WHERE kv_tags->'equip_name' = '["35201"]'
AND m_tags IS NOT NULL
group by
"time"::date,extract (hour from "time")
ORDER BY
"time"::date desc,extract (hour from "time") desc
limit 1000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。