文档说明

SELECT 语句

使用 SELECT 语句从一个或多个 度量 中查询数据。 SELECT 语句 需要 一个 SELECT 子句 和一个 FROM 子句

语法

SELECT field_expression[, ..., field_expression_n[, tag_expression[, ..., tag_expression_n]]] FROM measurement_expression[, ..., measurement_expression_n]

SELECT 子句

SELECT 子句支持几种标识要查询的数据的格式。它需要一个或多个 字段表达式 和可选的 标签表达式

  • field_expression:标识要返回的查询结果中的一个或多个字段的表达式。可以是 字段键、常量、正则表达式通配符 (*)函数表达式 以及任何算术运算符的组合。
  • tag_expression:标识要返回的查询结果中的一个或多个标签的表达式。可以是 标签键 或常量。

SELECT 子句行为

  • SELECT field_key - 返回特定字段。
  • SELECT field_key1, field_key2 - 返回两个特定字段。
  • SELECT field_key, tag_key - 返回特定字段和标签。
  • SELECT * - 返回所有 字段标签请参阅 通配符表达式
  • SELECT /^[t]/ - 返回所有与正则表达式匹配的 字段标签。至少有一个字段键必须匹配正则表达式。如果没有任何字段键匹配正则表达式,则不返回任何结果。

FROM 子句

FROM 子句指定要查询的 度量子查询。它需要至少一个以逗号分隔的 度量表达式子查询

measurement_expression

度量表达式用于标识要查询的度量。它可以是度量名称、完全限定的度量、常量或 正则表达式

  • 度量名称:当仅使用度量名称时,InfluxQL 假定查询请求中指定的数据库的默认保留策略。

    FROM measurement
    
  • 完全限定的度量:完全限定的度量包括数据库名称、保留策略名称和度量名称,每个名称之间由点(.)分隔。如果没有指定保留策略,InfluxQL 使用指定数据库的默认保留策略。

FROM database.retention_policy.measurement

-- Fully-qualified measurement with default retention policy
FROM database..measurement

InfluxQL 保留策略

在 InfluxDB Clustered 中,保留策略 不像在 InfluxDB 1.x 中那样是数据模型的一部分。每个 InfluxDB Clustered 数据库都有一个 保留期,它定义了数据库中保留数据的最大年龄。要在 InfluxQL 查询中使用完全限定的度量,当 创建数据库 时使用以下命名约定

database_name/retention_policy

子查询

InfluxQL 子查询是嵌套在 InfluxQL 查询的 FROM 子句中的查询。外部查询查询内部查询(子查询)返回的结果。

有关更多信息,请参阅 InfluxQL 子查询

显著的 SELECT 语句行为

至少查询一个字段

查询需要在 SELECT 子句中至少包含一个 字段键 以返回数据。如果 SELECT 子句仅包含 标签键,则查询返回空结果。当在 SELECT 子句中使用正则表达式时,如果正则表达式仅匹配标签键而没有字段键,则查询返回空结果。

要返回与标签键相关的数据,请在 SELECT 子句中至少包含一个字段键。

通配符表达式

当在 SELECT 子句中使用通配符表达式(*)时,查询返回所有标签和字段。如果对一个 函数 应用了通配符表达式,则查询返回所有应用了该函数的 字段,但不返回 标签,除非它们包含在 SELECT 子句中。

不能同时包含聚合和非聚合字段表达式

SELECT 语句不能同时包含聚合字段表达式(使用 聚合选择器 函数的)和 非聚合字段表达式。例如,在以下查询中,对一个字段应用了聚合函数,但没有对另一个字段应用

SELECT mean(temp), hum FROM home

此查询返回错误。有关更多信息,请参阅 混合聚合和非聚合查询的错误

数据类型和类型转换操作

SELECT 子句 支持使用 :: 语法指定 字段的 类型以及基本的类型转换操作。

SELECT field_expression::type FROM measurement_expression

:: 语法允许用户在查询中执行基本的类型转换操作。目前,InfluxQL 支持将 数值 字段值 转换为其他数值类型。将转换为 标识符类型 作为结果的过滤器,并返回该特定标识符类型的列以及 time 列。

数值类型
  • 浮点数
  • 整数
  • 无符号
非数值类型
  • 字符串
  • 布尔值
标识符类型
  • 字段
  • 标签

InfluxQL在尝试将数值类型强制转换为非数值类型以及反之亦然时,不会返回任何数据。

当将浮点数强制转换为整数或无符号整数时,浮点数的小数部分将被截断,不进行四舍五入。

SELECT 语句示例

以下示例使用了以下样本数据集

从一个测量中选择所有字段和标签

从一个测量中选择特定的标签和字段

从一个测量中选择所有字段

从一个测量中选择一个字段并执行基本算术运算

从多个测量中选择所有数据

从一个具有默认保留策略的完全限定测量中选择所有数据

类型转换示例

将整数字段转换为浮点数

将浮点字段转换为整数

将浮点字段转换为无符号整数


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

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

阅读更多

InfluxDB v3增强功能及InfluxDB Clustered现已上市

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

InfluxDB v3性能和功能

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

了解v3的新增强功能


InfluxDB集群版已全面上市

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

与我们讨论InfluxDB集群版