文档

pivot() 函数

pivot() 会收集存储在垂直方向(按列)的唯一值,并将它们按水平方向(按行)对齐到逻辑集合中。

输出数据

结果表的分组键与输入表相同,但不包括在 columnKeyvalueColumn 参数中找到的列。这些列不是结果输出表的一部分,并且从分组键中删除。

每个输入行应与输出表中特定行和列组合的 1:1 映射。行和列组合由 rowKeycolumnKey 参数确定。在识别到同一行和列对有多个值的情况下,使用集合中遇到的最后一个值作为结果。

输出如下构造

  • 新表的列集是 rowKey 与分组键的并集,但排除了由 columnKeyvalueColumn 指示的列。
  • 对于每个由 columnKey 参数识别的唯一值,都会向列集添加一个新列。
  • 新列的标签是使用 _ 作为分隔符连接 columnKey 的值的串联。如果值为 null,则使用“null”。
  • 对于每个由 rowKey 参数识别的唯一值,创建一个新行。
  • 对于每个新行,分组键列的值保持不变,而新列的值由输入表中的 valueColumn 在由 rowKey 值指定的行以及新列的标签确定。如果没有找到值,则将值设置为 null
  • 任何不属于分组键或未在 rowKeycolumnKeyvalueColumn 参数中指定的列都会被删除。
函数类型签名
(<-tables: stream[A], columnKey: [string], rowKey: [string], valueColumn: string) => stream[B] where A: Record, B: Record

有关更多信息,请参阅 函数类型签名

参数

rowKey

(必需) 用于唯一标识输出行的列。

columnKey

(必需) 用于识别新输出列的列。

valueColumn

(必需) 用于填充旋转 columnKey 列值的列。

tables

输入数据。默认为管道转发数据(<-)。

示例

根据时间将字段对齐到行

data
    |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")

查看示例输入和输出

根据时间将值关联到标签

import "sampledata"

sampledata.int()
    |> pivot(rowKey: ["_time"], columnKey: ["tag"], valueColumn: "_value")

查看示例输入和输出


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

Flux将进入维护模式。您可以继续按当前方式使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB v3增强功能和InfluxDB集群现在已公开发布

新功能包括更快的查询性能和管理工具,InfluxDB v3产品线现在已公开发布。

InfluxDB v3性能和功能

InfluxDB v3产品线在查询性能方面取得了重大提升,并提供了新的管理工具。这些增强包括用于监控InfluxDB集群健康状况的操作仪表板、InfluxDB Cloud专用环境中的单点登录(SSO)支持以及新的令牌和数据库管理API。

了解新的v3增强功能


InfluxDB 集群版现已全面上市

InfluxDB 集群版现已全面上市,为您自管理的堆栈带来 InfluxDB v3 的强大功能。

与我们就 InfluxDB 集群版进行交流