SELECT 语句
使用 SELECT
语句从一个或多个 measurement(度量) 中查询数据。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(度量) 或 子查询。它需要一个或多个逗号分隔的 measurement 表达式 或 子查询。
measurement_expression
measurement 表达式标识要查询的 measurement。它可以是 measurement 名称、完全限定的 measurement、常量或 正则表达式。
Measurement 名称:当仅使用 measurement 名称时,InfluxQL 假定查询请求中指定的数据库的默认保留策略。
FROM measurement
完全限定的 Measurement:完全限定的 measurement 包括数据库名称、保留策略名称和 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 查询中使用完全限定的 measurement,请在 创建数据库 时使用以下命名约定
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
列。
数值类型
float
integer
unsigned
非数值类型
string
boolean
标识符类型
field
tag
如果查询尝试将数值类型值转换为非数值类型值,反之亦然,则 InfluxQL 不返回任何数据。
将浮点值转换为整数或无符号整数时,浮点值在小数点处被截断。不执行四舍五入。
SELECT 语句示例
以下示例使用以下示例数据集
类型转换示例
此页内容是否对您有帮助?
感谢您的反馈!
支持与反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。