在我的InfluxDB中,我有value
和measurements
等字段键,这些字段存储在名为InstallationId
的测量中。
我想计算来自measurements
value
的每个type
的所有记录的小时平均值。PM25
< 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}}每小时的平均值。
我希望我没有过分复杂化我的问题。如果需要澄清的话,请告诉我。
答案 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中通常用于计算平均值的函数。