对列进行操作
使用以下常见查询对列进行操作:
这些示例使用NOAA水样数据。
查找并计数列中的唯一值
在指定列中寻找并计算唯一值的数量。 以下示例查找并计算收集数据的唯一位置。
查找唯一值
此查询:
from(bucket: "noaa")
|> range(start: -30d)
|> group()
|> keep(columns: ["location"])
|> unique(column: "location")
示例结果
| 位置 |
|---|
| 土狼溪 |
| 圣塔莫尼卡 |
计数唯一值
这个查询:
from(bucket: "noaa")
|> group()
|> unique(column: "location")
|> count(column: "location")
示例结果
| 位置 |
|---|
| 2 |
重新计算 _values 列
要重新计算 _value 列,在 map() 中使用 with 操作符来覆盖现有的 _value 列。
以下查询:
from(bucket: "noaa")
|> filter(fn: (r) => r._measurement == "average_temperature")
|> range(start: -30d)
|> map(fn: (r) => ({r with _value: (float(v: r._value) - 32.0) * 5.0 / 9.0} ))
| 字段 | 测量 | 开始 | 结束 | 时间 | 位置 | 值 |
|---|---|---|---|---|---|---|
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:00:00Z | 山狗溪 | 27.77777777777778 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:06:00Z | 郊狼溪 | 22.77777777777778 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:12:00Z | 郊狼溪 | 30 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:18:00Z | 郊狼溪 | 31.666666666666668 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:24:00Z | 郊狼溪 | 25 |
| 度 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:30:00Z | 郊狼溪 | 21.11111111111111 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:36:00Z | 郊狼溪 | 28.88888888888889 |
| 度 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:42:00Z | 郊狼溪 | 24.444444444444443 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:48:00Z | 郊狼溪 | 29.444444444444443 |
| 度数 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T00:54:00Z | 郊狼溪 | 26.666666666666668 |
| 度 | 平均温度 | 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 2019-08-17T01:00:00Z | 科约特溪 | 21.11111111111111 |
| ••• | ••• | ••• | ••• | ••• | ••• | ••• |
计算一个新列
要使用行中的值进行计算并添加新列,请使用 map()。
下面的示例将华氏温度转换为摄氏温度,并将摄氏值映射到新的 celsius 列。
以下查询:
from(bucket: "noaa")
|> filter(fn: (r) => r._measurement == "average_temperature")
|> range(start: -30d)
|> map(fn: (r) => ({r with celsius: (r._value - 32.0) * 5.0 / 9.0}))
示例结果
| _开始 | _结束 | _字段 | _测量 | 位置 | _时间 | _值 | 摄氏度 |
|---|---|---|---|---|---|---|---|
| 1920年3月5日22:10:01 UTC | 2020年3月5日22:10:01 UTC | 度 | 平均温度 | 郊狼溪 | 2019年8月17日00:00:00 UTC | 82 | 27.78 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 科约特溪 | 2019-08-17T00:06:00Z | 73 | 22.78 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度数 | 平均温度 | 郊狼溪 | 2019-08-17T00:12:00Z | 86 | 30.00 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 土狼溪 | 2019-08-17T00:18:00Z | 89 | 31.67 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 狐狸溪 | 2019-08-17T00:24:00Z | 77 | 25.00 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 郊狼溪 | 2019-08-17T00:30:00Z | 70 | 21.11 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 小狼溪 | 2019-08-17T00:36:00Z | 84 | 28.89 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 狐狸溪 | 2019-08-17T00:42:00Z | 76 | 24.44 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 郊狼溪 | 2019-08-17T00:48:00Z | 85 | 29.44 |
| 1920-03-05T22:10:01Z | 2020-03-05T22:10:01Z | 度 | 平均温度 | 郊狼溪 | 2019-08-17T00:54:00Z | 80 | 26.67 |
| ••• | ••• | ••• | ••• | ••• | ••• | ••• | ••• |