文档资料

InfluxQL 选择器函数

使用选择器函数来评估、选择并返回数据中的值。选择器函数返回来自每个 InfluxQL 分组的所选值的一行或多行。

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

缺失的 InfluxQL 函数

一些 InfluxQL 函数正在重构以与 InfluxDB 3.0 存储引擎一起工作。如果您需要的函数不在列表中,请查阅InfluxQL 特性支持页面以获取更多信息。

BOTTOM()

返回最小的 N 字段值BOTTOM() 支持整型 64 位和浮点型 64 位的字段值 数据类型

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) 的示例


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB v3 增强功能和 InfluxDB Clustered 现已全面上市

新功能,包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB Clustered 现已全面上市。

InfluxDB v3 性能和功能

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

了解新的 v3 增强


InfluxDB Clustered 全面上市

InfluxDB Clustered 现已全面上市,并为您提供了在自管理堆栈中使用 InfluxDB v3 的能力。

与我们谈谈 InfluxDB Clustered