InfluxDB 获取更改列表

InfluxDB get list of changes

我想得到如下结果:

name           from_value      to_value            at 
tag A          10              15                  2019-02-11 16:00
tag B          1               2                   2019-02-11 16:00
tag A          15              20                  2019-02-11 16:05
tag B          2               3                   2019-02-11 16:05
tag A          20              25                  2019-02-11 16:10
tag B          3               4                   2019-02-11 16:10

基本上是一列"from_value"(前值当前点)和一列"to_value"(当前值当前点)。

到select只有当前点值我做的:

SELECT value FROM data WHERE "name"='tag A'

如果我还想 select 以前的值怎么办?

SELECT prev(value) AS "from_value", value AS "to_value" FROM data WHERE "name"='tag A'

我可以像上面那样做吗,或者我需要每次为每个新点保存以前的值?

通过 group by time,您可以使用 last()difference() 函数来获取每个时间间隔的值变化。

SELECT LAST(value)-DIFFERENCE(LAST(value)) as FromValue, LAST(value) as ToValue
FROM demo where time > 1549983975150000000 
GROUP BY time(10ms),tagA FILL(none)
name: demo
tags: tagA=1
time                FromValue ToValue
----                --------- -------
1549984410470000000           10
1549984421820000000 10        15
1549984431180000000 15        17
1549984436350000000 17        10
1549984753810000000 10        10
SELECT * FROM demo
name: demo
time                tagA value
----                ---- -----
1549984410475859753 1     10
1549984421827992234 1     15
1549984431180379398 1     17
1549984436356232522 1     10
1549984753817094214 1     10