如何计算每个字段的每小时平均值,然后从这些平均值中获取最大值

时间:2017-11-09 12:45:22

标签: sql influxdb

在我的InfluxDB中,我有valuemeasurements等字段键,这些字段存储在名为InstallationId的测量中。

我想计算来自measurements value的每个type的所有记录的小时平均值。PM25&lt; 3000和value = 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)) 并记录在1472688000000 ms和1512000000000 ms之间,然后从这些小时平均值中选择最大InstallationId

这是我提出的SQL查询:

thread_local

问题是此查询正在计算每小时所有记录的平均值,我需要它来计算每{/ 1}}每小时的平均值。

我希望我没有过分复杂化我的问题。如果需要澄清的话,请告诉我。

1 个答案:

答案 0 :(得分:0)

然后将其添加到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中通常用于计算平均值的函数。