Flux Union语法

  • drop 、set、rename应该放最语句后端
  • join 只能连接两个表
  • union 可以并多个表
  • pivot 可以做行专列
  • filter用or比contains 快N倍
  • range显示起止时间可以加快查询速度
t_max = from(bucket: "po")
    |> range(start: 2022-02-01T00:00:00Z, stop: 2022-03-01T00:00:00Z)
    |> filter(fn: (r) => r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsA" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsB" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsC")
    |> set(key: "tag", value: "max")
    |> group(columns: ["tag_id_2022-02"])
    |> window(every: 1mo)
    |> max()
    //|> rename(columns: { _value: "max"})
    |> drop(columns: ["_time", "_start","_stop","_field","_measurement","table"])
t_min = from(bucket: "po")
    |> range(start: 2022-02-01T00:00:00Z, stop: 2022-03-01T00:00:00Z)
    |> filter(fn: (r) => r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsA" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsB" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsC")
    |> set(key: "tag", value: "min")
    |> group(columns: ["tag_id_2022-02"])
    |> window(every: 1mo)
    |> min()
    //|> rename(columns: { _value: "min"})
    |> drop(columns: ["_time", "_start","_stop","_field","_measurement","table"])

t_mean = from(bucket: "po")
    |> range(start: 2022-02-01T00:00:00Z, stop: 2022-03-01T00:00:00Z)
    |> filter(fn: (r) => r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsA" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsB" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsC")
    //|> filter(fn: (r) =>contains(value:  r["tag_id_2022-01"], set: ["c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsA"]))
    
    |> group(columns: ["tag_id_2022-02"])
    |> window(every: 1mo)
    |> mean()
    |> drop(columns: [ "_start","_stop","_field","_measurement"])
    |> set(key: "tag", value: "mean")

t_last = from(bucket: "po")
    |> range(start: 2022-02-01T00:00:00Z, stop: 2022-03-01T00:00:00Z)
    |> filter(fn: (r) => r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsA" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsB" or r["tag_id_2022-02"] == "c1.H_1AH1_PM5350P_1\\MHAI1\\ThdA\\phsC")
    |> set(key: "tag", value: "last")
    |> group(columns: ["tag_id_2022-02"])
    |> window(every: 1mo)
    |> last()
    |> drop(columns: ["_time", "_start","_stop","_field","_measurement","table"])

union(tables: [t_max,t_min,t_last,t_mean])
    |>pivot(rowKey: ["tag_id_2022-02"], columnKey: ["tag"], valueColumn: "_value")
posted @ 2022-08-25 14:49  喜爱糖葫芦  阅读(175)  评论(0编辑  收藏  举报