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 语句示例
以下示例使用了以下样本数据集
类型转换示例
这个页面有帮助吗?
感谢您的反馈!