【问题标题】:How to calculate hourly average per field key and then get max value from those mean values如何计算每个字段键的每小时平均值,然后从这些平均值中获取最大值
【发布时间】:2017-11-09 12:45:21
【问题描述】:

在我的 InfluxDB 中,我有诸如 InstallationIdvalue 之类的字段键,它们存储在名为 measurements 的度量中。

我想计算每个 InstallationIdmeasurements 具有 value type = PM25 并且记录在 1472688000000 毫秒和 1512000000000 毫秒之间的所有记录的每小时平均值,然后选择最大值value 来自每小时平均值。

这是我想出的一个 SQL 查询:

SELECT max("mean")
FROM
  (SELECT mean("value")
   FROM "measurements"
   WHERE "value" < 3000
     AND "type" = 'PM25'
     AND TIME > 1472688000000ms
     AND TIME < 1512000000000ms
   GROUP BY time(1h))

问题是这个查询正在计算每小时所有记录的平均值,我需要它来计算每个 InstallationId 每小时的平均值。

我希望我没有使我的问题过于复杂。如果有什么需要澄清的,请告诉我。

【问题讨论】:

    标签: sql influxdb


    【解决方案1】:

    然后将其添加到group by:

      SELECT instrument_id, time(1h), mean("value")
      FROM "measurements"
      WHERE "value" < 3000 AND "type" = 'PM25' AND
            time > 1472688000000ms AND time < 1512000000000ms
      GROUP BY instrument_id, time(1h)
    

    我不确定max() 的用途。这似乎与您的问题无关。我也不熟悉您使用的语法。 avg()是SQL中常用的计算平均值的函数。

    【讨论】:

    • 我收到:"error": "error parsing query: mixing aggregate and non-aggregate queries is not supported"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多