【问题标题】:postgres read query resample time series data for hourly averagespostgres 读取查询重新采样时间序列数据以获取每小时平均值
【发布时间】:2021-08-01 01:36:22
【问题描述】:

我是 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

【问题讨论】:

    标签: python sql postgresql psycopg2 timescaledb


    【解决方案1】:

    您可以使用提取功能:

    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
    

    【讨论】:

    • 我收到一个错误:': syntax error at or near ""day"" LINE 13: "time"::date "day" desc 有什么想法吗?
    • @HenryHub opps,额外的东西按顺序排列,请参阅更新的 asnwer
    猜你喜欢
    • 2022-11-27
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多