添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

3、从单个measurement查询特定的field和tag

SELECT "tag_name","tag_name","field_name" FROM measurement_name

4、从多个measurement中查询数据

select * from "measurement_name","measurement_name1"

5、模糊查询
(1)前缀匹配

select * from measurement_name where field=~/^给定字段/

(2)后缀匹配

select * from measurement_name where field=~/给定字段$/

(3) 包含

select * from measurement_name where field=~/给定字段/

二、select语句常见的问题

1、select查询时,至少要有一个field key,单独查tag是不可以的
2、查看tag的值用show

show tag values from "measurement_name" with key="tag_name"

3、 查询的字段值是字符串类型的,需要加单引号
4、查询的字段名是特别的(比如字段名与Influx的关键词一样),需要加双引号

三、常用函数
(1)count()函数
作用:返回一个(field)字段中的非空值的数量

SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(2)DISTINCT()函数
作用:返回一个字段(field)的唯一值

SELECT DISTINCT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(3)MEAN() 函数
作用:返回一个字段(field)中的值的算术平均值(平均值)。字段类型必须是长整型或float64。

SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(4)MEDIAN()函数
作用:从单个字段(field)中的排序值返回中间值(中位数)。字段值的类型必须是长整型或float64格式。

SELECT MEDIAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(5)SPREAD()函数
作用:返回字段的最小值和最大值之间的差值。数据的类型必须是长整型或float64。

SELECT SPREAD(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(6)SUM()函数
作用:返回一个字段中的所有值的和。字段的类型必须是长整型或float64。

SELECT SUM(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(7)BOTTOM()函数
作用:返回一个字段中最小的N个值。字段类型必须是长整型或float64类型。

SELECT BOTTOM(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(8)FIRST()函数
作用:返回一个字段中最老的取值。

SELECT FIRST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(9)LAST()函数
作用:返回一个字段中最新的取值。

SELECT LAST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(10)MAX()函数
作用:返回一个字段中的最大值。该字段类型必须是长整型,float64,或布尔类型。

SELECT MAX(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(11)MIN()函数
作用:返回一个字段中的最小值。该字段类型必须是长整型,float64,或布尔类型。

SELECT MIN(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(12)PERCENTILE()函数
作用:返回排序值排位为N的百分值。字段的类型必须是长整型或float64。

SELECT PERCENTILE(<field_key>, <N>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]

(13)DERIVATIVE()函数
作用:返回一个字段在一个series中的变化率。
InfluxDB会计算按照时间进行排序的字段值之间的差异,并将这些结果转化为单位变化率。其中,单位可以指定,默认为1s。

SELECT DERIVATIVE(<field_key>, [<unit>]) FROM <measurement_name> [WHERE <stuff>]

其中,unit取值可以为以下几种:

u --microsecondss --secondsm --minutesh --hoursd --daysw --weeks
DERIVATIVE()函数还可以在GROUP BY time()的条件下与聚合函数嵌套使用,格式如下:

SELECT DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)

(14)DIFFERENCE()函数
作用:返回一个字段中连续的时间值之间的差异。字段类型必须是长整型或float64。

SELECT DIFFERENCE(<field_key>) FROM <measurement_name> [WHERE <stuff>]

与GROUP BY time()以及其他嵌套函数一起使用的语法格式:

SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

其中,函数可以包含以下几个:

COUNT(), MEAN(), MEDIAN(),SUM(), FIRST(), LAST(), MIN(), MAX(), 和 PERCENTILE()。

(15)ELAPSED()函数
作用:返回一个字段在连续的时间间隔间的差异,间隔单位可选,默认为1纳秒。

SELECT ELAPSED(<field_key>, <unit>) FROM <measurement_name> [WHERE <stuff>]

(16)MOVING_AVERAGE()函数
作用:返回一个连续字段值的移动平均值,字段类型必须是长整形或者float64类型。

SELECT MOVING_AVERAGE(<field_key>,<window>) FROM <measurement_name> [WHERE <stuff>]

与其他函数和GROUP BY time()语句一起使用时的语法

SELECT MOVING_AVERAGE(<function>(<field_key>),<window>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)

此函数可以和以下函数一起使用:

COUNT(), MEAN(),MEDIAN(), SUM(), FIRST(), LAST(), MIN(), MAX(), and PERCENTILE().

(17)NON_NEGATIVE_DERIVATIVE()函数
作用:返回在一个series中的一个字段中值的变化的非负速率。
SELECT NON_NEGATIVE_DERIVATIVE(<field_key>, []) FROM <measurement_name> [WHERE ]

与聚合类函数放在一起使用时的语法如下所示:

SELECT NON_NEGATIVE_DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)

此函数与DERIVATIVE()函数类似

(18)STDDEV()函数
作用:返回一个字段中的值的标准偏差。值的类型必须是长整型或float64类型。

SELECT STDDEV(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
                    通过上篇博客,我们已经简单认识了InfluxDB了,其实在实际使用中,我们最常用的就是查询了,这篇博客就详细了解下InfluxDB的查询操作一、常用查询1、从单个measurement查询所有的field和tagSELECT * FROM measurement_name where tag='serverA'2、从单个measurement查询所有的fieldSELECT *::field FROM measurement_name3、从单个measurement查询特定的field和.
				
InfluxDB尽管每秒可以处理数十万的数据,但如果长时间存储大量数据,对于存储是很大的压力。那么我们既想数据保存得久一些或者永久保存,又想减轻存储的压力,该怎么办呢,这就要用到连续查询了,其实是用连续查询和保留策略(Retention Policy 简称RP)来一起实现 一、保留策略 1、保留策略是什么呢 保留策略指的是InfluxDB保存数据的时间,InfluxDB会比较服务器本地的时间戳和请求数据里的时间戳,并删除比在RPs里面用DURATION设置的更老的数据 一个数据库中可以有多个保留策略,但.
SELECT COUNT(value) FROM cpuinfo insert cpuinfo,item=shijiange_47.105.99.75_cpu.idle value666=90 SELECT COUNT(value) FROM cpuinfo 查询唯一值 SELECT DISTINCT(value) FROM cpuinfo 查询平均值 SELECT MEAN(val...
随着实时数据库的数据的不断存储,数据亮已经达到了9位数,而页面还要统计总条数,导致查询超时失败,返回的结果一直是0,经过排查是超时导致 influxDB java.net.SocketTimeoutException: Read timed out 问题 原因是http超时 解决方法: 引入okhttp static OkHttpClient.Builder client = new OkHttp...
篇幅这么长,直接看总结就完事了! influxdb查询语法在语句基本组成上和mysql非常相似,都有基本的`select … from …`、`group by `、`order by`、`limit`、聚合函数等,在一定程度上降低了`influxdb`的学习门槛。但是也有很多细节需要注意,比如: 1. `group by`后面只能对`tags`和`time`分组。 2. `order by` 只能对`time`进行排序。 3. 聚合函数只能作用于`fields`。 4. `limit`语法也不太一样。
前面一篇介绍了influxdb中基本的查询操作,在结尾处提到了如果我们希望对查询的结果进行分组,排序,分页时,应该怎么操作,接下来我们看一下上面几个场景的支持 在开始本文之前,建议先阅读上篇博文: 190813-Influx Sql系列教程八:query数据查询基本篇 0. 数据准备 在开始查询之前,先看一下我们准备的数据,其中name,phone为tag, age,blog,id...
https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162499&idx=1& sn=ca43c74ef541bd16a1d2450db6479c63&chksm=8b49316db c3eb87b9b1b8049429c820ed557fd2b735c5a486350db3ef0d0c7735f8171ba28a9&scene=
1. std::thread 类:表示线程的类,用于创建、管理和撤销线程。 2. std::thread::join() 函数:等待线程执行结束。这个函数会阻塞当前线程,直到被等待的线程执行完毕。 3. std::thread::detach() 函数:将线程独立出来,使其成为一个守护线程。守护线程将在程序退出时自动终止,而不需要显式地调用 join() 函数。 4. std::thread::get_id() 函数:返回线程的唯一标识符,可用于在多线程环境中识别不同的线程。 5. std::thread::hardware_concurrency() 函数:返回当前系统支持的最大线程数量。 6. std::this_thread::yield() 函数:让出当前线程的执行时间片,允许其他线程运行。 7. std::this_thread::sleep_for() 函数:阻塞当前线程的执行,直到指定的时间间隔过去。 8. std::this_thread::sleep_until() 函数:阻塞当前线程的执行,直到指定的时间点到达。 以上是 thread 头文件常用函数及说明。