Dr.*_*ugh 4 mysql influxdb grafana influxql flux-influxdb
我正在尝试使用 Flux 查询语言来查找基于一个人的列的总和。如果我有以下输入表:
如何使用 Flux 查询来获取以下输出表:
到目前为止,我已经尝试过类似的操作,但出现错误:
from: (bucket: "example")
|> range(start:v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r)=> r["_measurement"] == "test")
|> group(columns: r["person"])
|> reduce( fn: (r, accumulator) => ({sum: r._value + accumulator.sum}), identity: {sum: 0})
Run Code Online (Sandbox Code Playgroud)
你几乎走在正确的道路上了。您已经按名称分组,现在需要使用 function sum。注意最后一个函数 -|> group()它只是用于将表联合到一个视图。
|> group(columns: ["person"])
|> sum(column: "hoursSpent")
|> group()
Run Code Online (Sandbox Code Playgroud)
我提供了完整的调试查询:
import "array"
data = array.from(rows: [
{person: "John Smith", sport: "Cycling", hoursSpent: 5},
{person: "John Smith", sport: "Hiking", hoursSpent: 6},
{person: "John Smith", sport: "Swimming", hoursSpent: 1},
{person: "John Smith", sport: "Dancing", hoursSpent: 2},
{person: "Nancy Jones", sport: "Badminton", hoursSpent: 10},
{person: "Nancy Jones", sport: "Soccer", hoursSpent: 31},
{person: "Nancy Jones", sport: "Basketball", hoursSpent: 8},
{person: "Trevor John", sport: "Baseball", hoursSpent: 24},
{person: "Trevor John", sport: "Water Polo", hoursSpent: 2},
])
data
|> group(columns: ["person"])
|> sum(column: "hoursSpent")
|> group()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9525 次 |
| 最近记录: |