执行基本的 SQL 查询
InfluxDB SQL 实现由 Apache Arrow DataFusion 查询引擎驱动,该引擎提供类似于其他关系查询语言的 SQL 语法。
从 InfluxDB 查询数据的基本 SQL 查询最常包括以下子句
* 必需- *
SELECT
:指定要从度量中输出的字段、标签和计算,或使用通配符别名 (*
) 选择度量中的所有字段和标签。 - *
FROM
:指定要从中查询数据的度量。 WHERE
:仅返回满足指定条件的数据,例如,在时间范围内、包含特定标签值或包含指定范围之外的字段值。
结果集
如果至少有一行满足查询,InfluxDB Clustered 将在查询结果集中返回行数据。SQL 查询结果集包括查询的 SELECT
语句中列出的列。
基本查询示例
查询时间边界内的数据
- 使用
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
此页是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB Clustered 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。