4.InfluxDB-InfluxQL基础语法教程--基本select语句

本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/)
基本语法如下:

SELECT <field_key>[,<field_key>,<tag_key>] FROM <measurement_name>[,<measurement_name>]

可见,select语句是由SELECT子句和FROM子句组成的。


一、SELECT子句

在SELECT字句中,有如下几种形式,分别用于查询各种指定的数据:

语法 意思
SELECT * 查询measurement中所有的fields和 tags。示例sql:select * from h2o_feet;
SELECT "<field_key>" 查询指定的一个field。示例sql:select water_level from h2o_feet;
SELECT "<field_key>","<field_key>" 查询多个field。示例sql:select "level description", "water_level" from h2o_feet;
SELECT "<field_key>","<tag_key>" ?查询指定的field和tag。示例sql:select water_level,location from h2o_feet; :在SELECT子句中,如果包含了tag,那么此时就必须指定至少一个field。比如如下的sql就是错误的,因为它只select了一个tag,而没有field:select location from h2o_feet;
SELECT "<field_key>"::field,"<tag_key>"::tag 跟上面一样,也是查询指定的field和tag。 ::[field | tag]语法用来指定标识符的类型,因为有时候tag和field有可能同名,因此用 ::[field | tag]语法来加以区分。

在SELECT子句中,还包含数学运算聚合函数基本的类型转换正则表达式等


二、FROM子句

FROM子句用于指定要查询的measurement,支持的语法如下:

语法 意思
FROM <measurement_name> 从指定measurement中查询数据。这种方式会从当前DB、默认retention policy的measurement中查询数据。
FROM <measurement_name>,<measurement_name> 从多个measurement中查询数据
FROM <database_name>.<retention_policy_name>.<measurement_name> 从指定DB、指定retention policy的measurement中查询数据
FROM <database_name>..<measurement_name> 从指定DB、默认retention policy的measurement 中查询数据

FROM子句中还支持正则表达式

关于引号

如果measurement、tag、field等的标识符除了[A-z,0-9,_]之外,还有其他字符,或者标识符是keyword关键字,那么在引用的时候必须加上双引号。比如在表 h2o_feet 中,"level description"就是一个带有空格的field,如此一来在查询到的时候,就必须加上双引号了。如下图,在查询level description时若不加双引号,则会报错。

官方推荐,虽然有些标识符不是必须使用双引号,但是推荐对所有标识符使用双引号!


示例sql

  1. 从单个measurement中查询该measurement所有的tag和field
  2. 从单个measurement中查询指定的tag和field
  3. 从单个measurement中查询指定的tag和field,并指定它们的标识类型

    这种方式一般使用较少。
  4. 从measurement中查询所有的field

    The SELECT clause supports combining the * syntax with the :: syntax.
  5. 在查询时进行基本的数学运算

    InfluxDB遵循标准的四则运算规则。更多操作详见Mathematical Operators
  6. 同时从多个measurement中查询它们的所有数据
  7. 从一个全路径的measurement中查询数据

    可见,所谓的全路径,其实就是指在FROM子句中,指定了measurement所在的DB,以及要查询数据所在的retention policy。
  8. 查询指定数据库中的measurement的数据

    The query selects data in the NOAA_water_database, the DEFAULT retention policy, and the h2o_feet measurement. The .. indicates the DEFAULT retention policy for the specified database.

关于SELECT语句的常见疑问

在SELECT 子句中,必须要有至少一个field key!如果在SELECT子句中只有一个或多个tag key,那么该查询会返回空。这是由InfluxDB底层存储数据的方式所导致的结果。
示例


上面的查询结果返回为空,是因为在它的SELECT子句中,只查询了location这个tag key。
如果想要查询跟location这个tag key有关的任何数据,则在SELECT字句中必须至少要包含一个field key,如下:



4.InfluxDB-InfluxQL基础语法教程--基本select语句

原文地址:https://www.cnblogs.com/suhaha/p/11692115.html

时间: 2024-10-10 21:08:28

4.InfluxDB-InfluxQL基础语法教程--基本select语句的相关文章

6.InfluxDB-InfluxQL基础语法教程--GROUP BY子句

本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) GROUP BY子句通过用户自己制定的tags set或time区间,来将查询结果进行分组. 一.GROUP BY tags GROUP BY 通过用户指定的tag set,来对查询结果进行分组. 语法: SELECT_clause FROM_clause [WHERE_clause] GROUP BY [* | <t

SQLite使用教程9 Select 语句

http://www.runoob.com/sqlite/sqlite-select.html SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据.这些结果表也被称为结果集. 语法 SQLite 的 SELECT 语句的基本语法如下: SELECT column1, column2, columnN FROM table_name; 在这里,column1, column2...是表的字段,他们的值即是您要获取的

5.InfluxDB-InfluxQL基础语法教程--WHERE子句

本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) WHERE子句 语法: SELECT_clause FROM_clause WHERE <conditional_expression> [(AND|OR) <conditional_expression> [...]] 注:在WHERE子句中,支持在fields, tags, and timestamp

JavaSE入门学习6:Java基础语法之运算符和语句(上)

继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age的值设置为20.这时候就 须要一个"=",告诉程序须要进行赋值操作. Java 语言中经常使用的运算符可分为例如以下几种:算术运算符,赋值运算符,比較运算符,逻辑运算符,条件运符. (1)算术运算符 算术运算符主要用于进行主要的算术运算.如加法.减法.乘法.除法等. Java 中经常使用的

mysql基础(六)select语句

单表查询:     SELECT         [ DISTINCT ]         [SQL_CACHE | SQL_NO_CACHE]         select_expr [,select_expr ...]         [FROM table_references [ WHERE where_condition ]         [GROUP BY {col_name | expr |}] [HAVING where_condition]  [ORDER BY [ASC |

SQL基础语法(笔记)

SQL基础语法:1.SELECT :SELECT 列名称 FROM 表名称 以及 SELECT * FROM 表名称2.DISTINCT:SELECT DISTINCT 列名称 FROM 表名称3.WHERE:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值4.ORDER BY 语句用于根据指定的列对结果集进行排序.默认升序:ASC,降序:DESC5.INSERT:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),

css基础系列教程:CSS基础语法1

css基础系列教程:CSS基础语法1 作者:www.divcss8.com 我们学习CSS要明白一个重要的问题,CSS主要是解决与实现表现(CSS)与结构(HTML)的分离.我们编写完HTML之后,如何通过CSS对HTML实现控制呢. 1.  行内样式 2.  内嵌样式 3.  链接样式 4.  导入样式 我们这一节课的示例就先从行内样式开始 行内样式:就是直接在HTML上写样式,就是HTML上加属性style=""这种形式.如 <p style="color:#f00

C#语法教程(基础教程)

百度云盘下载 C#语法教程(基础教程)C#简介:C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承.接口.与Java几乎同样的语法和编译成中间代码再运行的过程适合学习对象:本教程为基础视频教程主要针对刚学c#的同学不管学什么语言最重要的是要将基础打好,不要学一点皮毛后就想着去挑战高阶的东

ASP.NET MVC3 系列教程 - Razor视图引擎基础语法

http://www.cnblogs.com/highend/archive/2011/04/09/aspnet_mvc3_razor_engine.html 4. 关于所有带"_"开头的文档 ASP.NET MVC3默认情况下会拒绝所有访问地址以"_"开头的_*.cshtml文档.关于_*.cshtml文档,其实他是WebPages中的一部分,稍后将会详细介绍该以"_"文档的使用说明. 例如访问 http://localhost:7985/_V