首页 > 解决方案 > InfluxDb 查询,包括查询过滤器中的字段和值

问题描述

我需要运行一个查询,该查询必须根据一个动态字段和它自己的值过滤一些数据,返回已经聚合的其余动态字段值。

我在没有字段值过滤器的情况下运行查询,但我没有找到基于一个动态字段和值包含此过滤器的语法。

这是我的查询:

    from(bucket: "dairy/autogen")
        |> range(start: dashboardTime)
        |> filter(fn: (r) => r.UnitRunning == "1")
        |> filter(fn: (r) => r._measurement == "?????????")
        |> filter(fn: (r) => r.Customer == "?????????????")
        |> filter(fn: (r) => r.UnitNumber == "1")
        |> filter(fn: (r) => r.UnitRecipe == "1")
    
        -- V0, All other fields that should return with their value aggregated
        |> filter(fn: (r) => r._field == "?????????" or ...... or r._field == "KPISpecEnergyCons" or r._field == "?????????" )
    
        -- **** V1, doesn't work ****
        -- |> filter(fn: (r) => r.KPISpecEnergyCons < 3)
        
        -- **** V2, only returns this FIELD and not all the others ****
        -- |> filter(fn: (r) => r._field == "KPISpecEnergyCons" and r._value < 3)
    
        |> aggregateWindow(every: 1h, fn: mean)
        |> drop(columns: ["UnitCIP","UnitOff","UnitRecipe","UnitRunning","UnitStandby"])
        |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")

恢复:

我需要运行 V0(应返回所有字段)和 V2(仅当字段名为“X”且其值低于 3 时才有效)版本运行,但两者都只返回字段“X”,并且如果只有 V0,则返回所有字段,但字段 X 的值也包含在聚合函数中(脚本底部的第 3 行)

PS:运行 InfluxDB v1.8

这个怎么做?TIA,路易斯

标签: cloudinfluxdbinfluxqlflux-influxdb

解决方案


推荐阅读