【问题标题】:InfluxDB get list of changesInfluxDB 获取更改列表
【发布时间】:2019-02-11 22:21:57
【问题描述】:

我想得到如下结果:

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 value FROM data WHERE "name"='tag A'

如果我还想选择之前的值怎么办?

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

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

【问题讨论】:

    标签: influxdb


    【解决方案1】:

    使用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
    

    【讨论】:

    • 其实现在第一条记录是None/10,第二条记录是10/15。我需要先记录 15/10 秒 17/15 等等...
    • 另外,我需要结果列表是 tagA 和 tabB 变化的混合,而不仅仅是其中一个。
    • 根据需要按标签部分调整分组。
    • 按标签分组返回 N 组结果,其中 N 是我拥有的标签数。我需要 1 个混合列表。
    • select * from (select last(value)-difference(last(value)) as FromValue, last(value) as ToValue from demo where time > 1549983975150000000 group by time(10ms),* fill(none)) 可以接近你想要的。
    猜你喜欢
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2017-12-22
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多