执行基本SQL查询
InfluxDB SQL实现由Apache Arrow DataFusion查询引擎提供支持,该引擎提供类似于其他关系查询语言的SQL语法。
查询InfluxDB数据的SQL查询通常包括以下子句
必须的- *
SELECT
: 指定从测量中选择输出字段、标签和计算,或使用通配符别名(*
)从测量中选择所有字段和标签。 - *
FROM
: 指定要查询数据的测量。 WHERE
: 只返回满足指定条件的数据 - 例如,位于时间范围内、包含特定的标签值或包含在指定范围之外的字段值。
结果集
如果至少有一行满足查询条件,InfluxDB Clustered将返回查询结果集中的行数据。SQL查询结果集包括查询的SELECT
语句中列出的列。
基本查询示例
示例数据
以下示例使用开始写入数据指南中编写的示例数据。在运行示例查询并返回结果之前,请将示例数据写入您的InfluxDB Clustered数据库。
查询时间边界内的数据
- 使用
SELECT
子句指定要返回的标签和字段。要返回所有标签和字段,请使用通配符别名(*
)。 - 在
FROM
子句中指定要查询的测量。 - 在
WHERE
子句中指定时间边界。包括基于时间的谓词,这些谓词比较time
列的值与时间戳。使用AND
逻辑运算符将多个谓词链接在一起。
查询时间边界可以是相对的或绝对的。
查询无时间边界的数据
要查询没有时间边界的数据,不要在WHERE
子句中包含任何基于时间的谓词。
查询没有时间边界的数据可能会返回意想不到的大量数据。查询可能需要很长时间才能完成,并且结果可能会被截断。
SELECT * FROM home
查询特定字段和标签
要查询特定字段,请在SELECT
子句中包含它们。如果查询多个字段或标签,请用逗号分隔。如果字段或标签键包含特殊字符、空格或区分大小写,请用双引号包裹键。
SELECT time, room, temp, hum FROM home
根据标签值查询字段
- 在
SELECT
子句中包含您想要查询的字段和您想要基于条件的基础的标签。 - 在
WHERE
子句中包含比较标签标识符与字符串字面量的谓词。使用逻辑运算符将多个谓词链接起来并应用多个条件。
SELECT * FROM home WHERE room = 'Kitchen'
根据字段值查询点
- 在
SELECT
子句中包含您想要查询的字段。 - 在
WHERE
子句中包含比较字段标识符与值或表达式的谓词。使用逻辑运算符(AND
,OR
)将多个谓词链接起来并应用多个条件。
SELECT co, time FROM home WHERE co >= 10 OR co <= -10
别名查询字段和标签
要别名或重命名您查询的字段和标签,请在SELECT
子句中的字段或标签标识符后传递一个字符串字面量。您可以使用AS
子句来定义别名,但这不是必需的。以下查询在功能上是相同的
SELECT temp 'temperature', hum 'humidity' FROM home
SELECT temp AS 'temperature', hum AS 'humidity' FROM home
这个页面有帮助吗?
感谢您的反馈!