# InfluxDB:如何使用 Flux 添加作为连续行/时间戳差异结果的列?

问题描述 投票:0回答:1

我是 InfluxDB 和 Flux 查询语言的新手,非常感谢您的耐心等待!很高兴被重定向到文档,但我还没有发现任何真正有用的东西。到目前为止,我有一个简单的时间序列数据和一个_measurement。

Screenshot from Grafana

我想创建另一个列或表(无论什么),它的值是列(G_PAED)中连续值的差值,如上面的屏幕截图所示。例如:

What is expected!

我有以下查询来获取第一张图片中显示的表格。

Flux query to get the data

我在 flux 文档上找不到任何东西,在 Grafana 中也找不到任何东西来执行这个操作。任何帮助,将不胜感激。谢谢。

我尝试使用

map()
函数创建一个新列,但我不知道如何在通量中迭代/索引 G_PAED 或者它是否可能。

|> map(fn: (r) => ({r with _diff: r.G_PAED - r.G_PAED }))
grafana influxdb flux
1个回答
1
投票

我相信你正在寻找的是

difference()
功能.

AggregatedConsumption = from(bucket: "Energy")
    |> range(start: v.timeRangeStart, end: v.timeRangeEnd)
    |> filter(fn: (r) => r["_measurement"] == "General")
    |> filter(fn: (r) => r["_field"] == "G_PAED")
    |> aggregateWindow(every: 1m, fn: last, createEmpty: false)
    |> difference()
    |> yield(name: "AggregatedConsumption")

这只会返回聚合数据,因此如果您需要两者,则需要使用

join()
函数(或在 grafana 上创建多个查询)

© www.soinside.com 2019 - 2024. All rights reserved.