文档文档

InfluxQL 选择器函数

使用选择器函数评估、选择和返回数据中的值。选择器函数从每个 InfluxQL 组返回一行或多行包含所选值的结果。

示例使用 InfluxDB 入门教程 中提供的示例数据集。

缺失的 InfluxQL 函数

某些 InfluxQL 函数正在重新架构中,以与 InfluxDB 3 存储引擎配合使用。如果您需要的函数未在此处列出,请查看 InfluxQL 功能支持页面 以获取更多信息。

BOTTOM()

返回最小的 N 个 字段值BOTTOM() 支持 int64 和 float64 字段值 数据类型

BOTTOM(field_expression[, tag_expression_1[, ..., tag_expression_n]], N)

注意:如果最小值的两个或多个值之间存在并列,BOTTOM() 将返回时间戳最早的字段值。

参数

  • field_expression:用于标识要操作的字段的表达式。可以是 字段键 或常量。
  • tag_expression:用于标识要按其分段的标签键的表达式。可以是 标签键 或常量。使用逗号分隔多个标签。
  • N:从每个 InfluxQL 组或指定的标签段返回的结果数。

显著行为

示例

选择字段的底部三个值

选择两个唯一标签值的底部字段值

选择底部三个字段值以及与每个值关联的标签值

选择唯一标签值的底部字段值,并在时间窗口内(按时间分组)

FIRST()

返回时间戳最旧的 字段值

FIRST(field_expression)

参数

  • field_expression:用于标识一个或多个要操作的字段的表达式。可以是 字段键、常量、正则表达式或通配符 (*)。支持所有字段 数据类型

显著行为

示例

选择字段的第一个值

选择每个字段的第一个值

从与正则表达式匹配的字段键中选择第一个值

在时间窗口内(按时间分组)从字段中选择第一个值

LAST()

返回时间戳最新的 字段值

LAST(field_expression)

参数

  • field_expression:用于标识一个或多个要操作的字段的表达式。可以是 字段键、常量、正则表达式或通配符 (*)。支持所有字段 数据类型

显著行为

示例

选择字段的最后一个值

选择每个字段的最后一个值

从与正则表达式匹配的字段键中选择最后一个值

在时间窗口内(按时间分组)从字段中选择最后一个值

MAX()

返回最大的 字段值

MAX(field_expression)

参数

  • field_expression:用于标识一个或多个要操作的字段的表达式。可以是 字段键、常量、正则表达式或通配符 (*)。支持数值字段

显著行为

示例

选择字段的最大值

选择每个字段的最大值

从与正则表达式匹配的字段键中选择最大值

在时间窗口内(按时间分组)从字段中选择最大值

MIN()

返回最小的 字段值

MIN(field_expression)

参数

  • field_expression:用于标识一个或多个要操作的字段的表达式。可以是 字段键、常量、正则表达式或通配符 (*)。支持数值字段

显著行为

示例

选择字段的最小值

选择每个字段的最小值

从与正则表达式匹配的字段键中选择最小值

在时间窗口内(按时间分组)从字段中选择最小值

PERCENTILE()

返回第 N 个百分位数 字段值

PERCENTILE(field_expression, N)

参数

  • field_expression:用于标识一个或多个要操作的字段的表达式。可以是 字段键、常量、正则表达式或通配符 (*)。支持数值字段
  • N:要返回的百分位数。必须是大于 0 且小于或等于 100 的整数或浮点值。

显著行为

  • PERCENTILE() 在按时间分组时覆盖原始时间戳
  • PERCENTILE(example_field, 100) 等效于 MAX(example_field)
  • PERCENTILE(example_field, 50) 几乎等效于 MEDIAN(example_field),但如果字段包含偶数个值,则 MEDIAN() 返回两个中间值的平均值。
  • PERCENTILE(example_field, 0) 返回 null

示例

从字段中选择第 50 个百分位数的值

选择每个字段的第 50 个百分位数的值

从与正则表达式匹配的字段键中选择第 50 个百分位数的值

在时间窗口内(按时间分组)从字段中选择第 50 个百分位数的值

TOP()

返回最大的 N 个 字段值TOP() 支持 int64 和 float64 字段值 数据类型

TOP(field_expression[, tag_expression_1[, ..., tag_expression_n]], N)

注意:如果最大值的两个或多个值之间存在并列,TOP() 将返回时间戳最早的字段值。

参数

  • field_expression:用于标识要操作的字段的表达式。可以是 字段键 或常量。
  • tag_expression:用于标识要按其分段的标签键的表达式。可以是 标签键 或常量。使用逗号分隔多个标签。
  • N:从每个 InfluxQL 组或指定的标签段返回的结果数。

显著行为

示例

选择字段的顶部三个值

选择两个唯一标签值的顶部字段值

选择顶部三个字段值以及与每个值关联的标签值

选择唯一标签值的顶部字段值,并在时间窗口内(按时间分组)

选择器函数的显著行为

按时间分组时的时间戳

当将选择器函数与 GROUP BY time() 子句一起使用时,大多数选择器函数返回每个时间间隔的起始边界的时间戳。但是,带有 N 参数的函数(指定每个组要返回的结果数)会保持每个返回点的原始时间戳。

返回每个时间间隔的开始时间
保持原始时间戳

选择器函数可能返回比预期少的点

对于以下带有 N 参数的选择器函数的查询,可能返回比预期少的点。

如果 InfluxQL 组或指定的标签键包含 X 个点或唯一标签值,并且 X 小于 N,则该函数为每个组或标签值返回 X 个结果而不是 N 个。

查看 FN(field_key, N) 的示例

查看 FN(field_key, tag_key, N) 的示例


此页面是否对您有帮助?

感谢您的反馈!


Flux 的未来

Flux 即将进入维护模式。您可以继续像现在这样使用它,而无需对代码进行任何更改。

阅读更多

现已全面上市

InfluxDB 3 Core 和 Enterprise

快速启动。更快扩展。

获取更新

InfluxDB 3 Core 是一个开源、高速、近实时数据引擎,可以实时收集和处理数据,并将其持久化到本地磁盘或对象存储。InfluxDB 3 Enterprise 构建于 Core 的基础上,增加了高可用性、读取副本、增强的安全性以及数据压缩功能,以实现更快的查询和优化的存储。InfluxDB 3 Enterprise 的免费层可供非商业家庭或业余爱好者使用。

有关更多信息,请查看