文档文档

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

注意事项

示例

选择字段的第 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) 的示例


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2