InfluxDB 2.0支持使用pivot函数进行数据透视,可以将行数据转换为列数据。
pivot函数的基本语法如下:
pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
其中,rowKey指定要保留的行键列表,columnKey指定要作为新列的字段名(可以是数组),valueColumn指定将用作值的字段名。例如,以下查询将按照时间对“value”字段进行透视,并使用“sensor”标签作为新列:
from(bucket: "my-bucket")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "my-measurement" and r._field == "value")
|> pivot(rowKey:["_time"], columnKey:["_measurement"], valueColumn:"_value")
这个查询会将原始数据按照时间聚合,并将每个时间点的值转换为一个新列,该列以“my-measurement”作为名称。如果源数据包含多个不同的_measurement,则每个_measurement都会转换为一个新列。
需要注意的是,在使用pivot函数时,请确保仅选择要透视的字段和标记。如果在选择中包含其他不必要或无关紧要的字段,则可能导致不正确或不完整的结果。




