连续查询以计算InfluxDB中的差异

时间:2016-08-02 02:40:07

标签: sql influxdb continuous

连续查询的最常见用途是计算平均值等。

CREATE CONTINUOUS QUERY minnie ON world BEGIN SELECT min(mouse) INTO min_mouse FROM zoo GROUP BY time(30m) END

我有增量值的数据点 我试图计算每个区间的价值差异。

INSERT mydb value=4  1470101034546846145
INSERT mydb value=8  1470101042290558132
INSERT mydb value=10 1470101043594271416 

我希望得到10 - 4 = 6。

有没有办法使用连续查询实现这一目标?

2 个答案:

答案 0 :(得分:1)

尝试在查询中使用新的DIFFERENCE()函数: https://docs.influxdata.com/influxdb/v0.13/query_language/functions/#difference

SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

自从v0.13我认为这是可用的。

答案 1 :(得分:0)

您的选择是

  • DIFFERENCE(),了解顺序差异。在您的示例中,DIFFERENCE(mouse)会给出8-4、10-8等。这可能对您有用,但不符合您的描述。
  • SPREAD():您正在寻找的似乎是MAX(mouse) - MIN(mouse)的简写。类似于SELECT SPREAD(mouse) AS "mouse_range" INTO mouse_calcs FROM zoo GROUP BY time(30m),其中mouse_rangemouse_calcs是我挑选的名称,没有特殊含义。