连续查询的最常见用途是计算平均值等。
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。
有没有办法使用连续查询实现这一目标?
答案 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_range
和mouse_calcs
是我挑选的名称,没有特殊含义。