influxdb入门(三)InfluxQL

select的基本用法:

选择全部的字段和标签,使用默认的数据库和rp:select * from "h2o_feet"

选择特定的字段和标签,使用默认的数据库和rp:select "level description","location","water_level" from "h2o_feet"

选择标签时必须携带一个字段,否则不会返回数据

从单个测量中选择特定的标签和字段,并提供标识符类型,用于区分是tag还是field:select "level description"::field,"location"::tag,"water_level"::field from "h2o_feet"

从单个测量中选择全部的field:select *::field from "h2o_field"

从单个测量中选择特定字段并进行算术运算:select ("water_level" *2)+4 from "h2o_feet"

从多个测量中选择所有的数据:select * from "h2o_feet","h2o_ph"

严格限定测量:select * from "NOAA_water_database"."autogen"."h2o_feet"

使用influxdb api访问数据,这里查询中的db和rp会覆盖请求中的db和rp参数

从特定数据库的测量中选择全部的数据:select * from "NOAA_water_database".."h2o_feet"

 

where的基本用法:

1:where不支持多个时间的or,返回空的结果:SELECT * FROM "absolutismus" WHERE time = '2016-07-31T20:07:00Z' OR time = '2016-07-31T23:07:17Z'

2:WHERE子句中的带有不带引号的字符串或双引号的字符串的查询不会返回任何数据,并且在大多数情况下 不会返回错误

3:tag做为string类型,只支持=,<>,!=操作

4:选择具有特定字段值的数据:select * from "h2o_feet" where "water_level">8

5:选择具有特定标签的数据:select "water_level" from "h2o_fet" where 'location"='santa_monica'

 

group by的基本用法

按标签进行分组

所有标签:group by *

特定标签: group by <tag_key>,<tag_key>

1:按单个标签对查询结果进行分组:select MEAN("water_level") from "h2o_level" group by "location"

2:按多个标签对查询结果进行分组:select MEAN("index") from "h2o_quality" group by "location","randtag"

3:按所有标签对查询结果进行分组:select MEAN("index") from "h2o_quality" group by *

按时间间隔分组

两个要求,需要在select中使用聚合函数,where中添加时间范围

1: 将查询结果分组为12分钟间隔:select count("water_level") from "h2o_feet" where "location"='coyote_creek' and AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' group by time(12m)

group by 依赖预设的时间分组,可能会导致问题,可以添加分组的偏移量group by(12m,6m):将分组的偏移量向前偏移6分组

 

posted @ 2022-02-16 20:37  故意写bug  阅读(361)  评论(0)    收藏  举报