在我的InfluxDB中,我有字段键,例如InstallationId
和value
,它们存储在名为measurements
的度量中。
我想从value
<3000 和type
=PM25
且记录在 1472688000000 ms 和 15120000000000 毫秒之间的measurements
中计算每InstallationId
所有记录的每小时平均值,然后从这些小时平均值中选择最大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
的平均值。
我希望我没有把我的问题复杂化。如果需要澄清,请告诉我。
然后将其添加到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中通常用于计算平均值的函数。