Timescale 的时间加权平均值实现为一个聚合,它使用上一次观测值结转 (LOCF) 或线性插值来加权每个值。该聚合不可并行化,但 连续聚合 支持它。

在此过程中,我们使用一个名为 freezer_temps 的示例表,其中包含有关内部冷冻室温度的数据。

  1. psql 提示符下,查找数据的平均值和时间加权平均值

    SELECT freezer_id,
    avg(temperature),
    average(time_weight('Linear', ts, temperature)) as time_weighted_average
    FROM freezer_temps
    GROUP BY freezer_id;
  2. 要确定冷冻室是否超出温度范围超过 15 分钟,请在窗口函数中使用时间加权平均值

    SELECT *,
    average(
    time_weight('Linear', ts, temperature) OVER (PARTITION BY freezer_id ORDER BY ts RANGE '15 minutes'::interval PRECEDING )
    ) as rolling_twa
    FROM freezer_temps
    ORDER BY freezer_id, ts;

有关时间加权平均值 API 调用的更多信息,请参阅 hyperfunction API 文档

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页