文档文档

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 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版本的一部分。

InfluxDB 3 Core 是我们新的开源产品。它是用于时间序列和事件数据的最新数据引擎。InfluxDB 3 Enterprise 是一个商业版本,它建立在 Core 的基础上,增加了历史查询功能、读取副本、高可用性、可扩展性和细粒度的安全性。

有关如何开始使用的更多信息,请查看