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 measurementFully-qualified measurement:完全限定的 measurement 包括数据库名称、保留策略名称和 measurement 名称,每个之间用句点 (
.) 分隔。如果未指定保留策略,InfluxQL 将使用指定数据库的默认保留策略。
FROM database.retention_policy.measurement
-- Fully-qualified measurement with default retention policy
FROM database..measurementInfluxQL 保留策略
在 InfluxDB 3 Core 中,保留策略不像 InfluxDB 1.x 中那样是数据模型的一部分。每个 InfluxDB 3 Core 数据库都有一个保留期,它定义了数据库中要保留数据的最大年龄。要在 InfluxQL 查询中使用完全限定的 measurement,请在 创建数据库时使用以下命名约定:
database_name/retention_policySubquery
InfluxQL 子查询是在 InfluxQL 查询的 FROM 子句中嵌套的查询。外部查询会查询内部查询(子查询)返回的结果。
有关更多信息,请参阅 InfluxQL 子查询。
SELECT 语句的注意事项
必须至少查询一个字段
查询要求 SELECT 子句中至少包含一个 字段键才能返回数据。如果 SELECT 子句仅包含 标签键,则查询将返回空结果。当在 SELECT 子句中使用正则表达式时,如果正则表达式仅匹配标签键而未匹配任何字段键,则查询将返回空结果。
要返回与标签键关联的数据,请在 SELECT 子句中包含至少一个字段键。
Wildcard expressions
当在 SELECT 子句中使用通配符表达式 (*) 时,查询将返回所有标签和字段。如果对通配符表达式应用了 函数,查询将返回所有应用了函数的字段,但除非在 SELECT 子句中包含标签,否则不会返回标签。
不能同时包含聚合和非聚合字段表达式
SELECT 语句不能同时包含聚合字段表达式(使用 聚合或 选择器函数的表达式)和非聚合字段表达式。例如,在以下查询中,对一个字段应用了聚合函数,但对另一个字段没有。
SELECT mean(temp), hum FROM home此查询将返回错误。有关更多信息,请参阅 关于混合聚合和非聚合查询的错误。
数据类型和类型转换操作
SELECT 子句支持使用 :: 语法指定 字段的类型和基本类型转换操作。
SELECT field_expression::type FROM measurement_expression:: 语法允许用户在查询中执行基本类型转换操作。目前,InfluxQL 支持将数值型 字段值转换为其他数值类型。转换为标识符类型会作为结果的过滤器,并仅返回具有该特定标识符类型的列以及 time 列。
Numeric types
floatintegerunsigned
Non-numeric types
stringboolean
Identifier types
字段tag
如果查询尝试将数值转换为非数值类型或反之,InfluxQL 将不返回任何数据。
将浮点数值转换为整数或无符号整数时,浮点数值将在小数点处截断。不进行四舍五入。
SELECT 语句示例
以下示例使用以下样本数据集
类型转换示例
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。