我有一个使用difference
函数的查询,但我不明白为什么它不返回任何数据。
查询为:
SELECT
difference(FIRST(grid_power_counter)) as grid_power_consumed
FROM homesolar.origin.main GROUP BY time(15m)
如果删除差异函数,它将返回数据:
SELECT
FIRST(grid_power_counter) as grid_power_consumed
FROM homesolar.origin.main GROUP BY time(15m)
此外,如果我将带区时间> now()-24h添加到具有差异函数的选择中,我也可以获得结果。
我真的不明白这种行为。有人可以帮我吗?
答案 0 :(得分:2)
问::只有将where过滤器添加到其中,我的查询才会起作用。为什么会这样?
引自influxdb的Groupby time
文档:
基本GROUP BY time()查询需要在InfluxQL函数中 SELECT子句,以及WHERE子句中的时间范围。
我怀疑您的第一个DIFFERENCE
查询不起作用,因为它缺少WHERE
函数的强制性Groupby time(...)
过滤器。
Group by time()
子句可能不返回任何行,因此也不返回。
对于涌入团队来说,这可能是github issue,因为我认为他们的查询解析器应该向您抱怨where
缺少Group by time
过滤器。
参考: https://docs.influxdata.com/influxdb/v1.5/query_language/data_exploration/#the-group-by-clause