SELECT 语句
InfluxDB 3 Core 处于公开 Alpha 阶段
InfluxDB 3 Core 处于公开 alpha 阶段,可用于测试和反馈,但不适用于生产环境。该产品和本文档均在开发中。我们欢迎并鼓励您提供关于 alpha 体验的反馈,并邀请您加入我们的公共频道以获取更新和分享反馈。
使用 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 3 Core 中,保留策略不是像 InfluxDB 1.x 中那样的数据模型的一部分。每个 InfluxDB 3 Core 数据库都有一个保留期,该保留期定义了数据库中要保留数据的最长期限。要在 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
列。
数值类型
float
integer
unsigned
非数值类型
string
boolean
标识符类型
field
tag
如果查询尝试将数值型值转换为非数值型类型,反之亦然,则 InfluxQL 不返回任何数据。
将浮点值转换为整数或无符号整数时,浮点值将在小数点处截断。不执行舍入。
SELECT 语句示例
以下示例使用以下示例数据集
类型转换示例
此页内容对您有帮助吗?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 3 Core 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度或支持合同的客户可以联系 InfluxData 支持。