有差异的查询不返回任何数据

时间:2018-07-08 13:06:21

标签: influxdb

我有一个使用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)

Results without difference

此外,如果我将带区时间> now()-24h添加到具有差异函数的选择中,我也可以获得结果。

我真的不明白这种行为。有人可以帮我吗?

1 个答案:

答案 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