1)TOP()函数

作用:返回一个字段中最大的N个值,字段类型必须是长整型或float64类型。

语法:

SELECT TOP(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
选择3个water_level最大值
SELECT TOP(water_level,3) FROM h2o_feet
结果
name: h2o_feet
--------------
time top
2015-08-29T07:18:00Z 9.957
2015-08-29T07:24:00Z 9.964
2015-08-29T07:30:00Z 9.954
例子2
选择3个water_level最大值,并在输出中包含相关的location标记:
SELECT TOP(water_level,3),location FROM h2o_feet
结果
name: h2o_feet
--------------
time top location
2015-08-29T07:18:00Z 9.957 coyote_creek
2015-08-29T07:24:00Z 9.964 coyote_creek
2015-08-29T07:30:00Z 9.954 coyote_creek
例子3
选择在2个location标签的最大值
SELECT TOP(water_level,location,2) FROM h2o_feet
结果
name: h2o_feet
--------------
time top location
2015-08-29T03:54:00Z 7.205 santa_monica
2015-08-29T07:24:00Z 9.964 coyote_creek
输出显示的位置每个标签值water_level最高值(santa_monica和coyote_creek)。
注:查询语法SELECT TOP(<field_key>,<tag_key>,<N>),标签在哪里有X的不同的值,返回n或x字段的值,以较小者为准,并返回的每个点有一个独特的标签值。要演示这种行为,请参见上面示例查询的结果,其中n等于3,n等于1。
  • N = 3
SELECT TOP(water_level,location,3) FROM h2o_feet
结果
name: h2o_feet
--------------
time top location
2015-08-29T03:54:00Z 7.205 santa_monica
2015-08-29T07:24:00Z 9.964 coyote_creek
返回两个值而不是三InfluxDB因为位置标签只有两个值(santa_monica和coyote_creek)。
  • N = 1
SELECT TOP(water_level,location,1) FROM h2o_feet
结果
name: h2o_feet
--------------
time top location
2015-08-29T07:24:00Z 9.964 coyote_creek
比较water_level InfluxDB顶值在每个标签的位置值并返回water_level的较大值。

例子4
选择最大water_level 2个值,范围2015年8月18日 4点与2015年8月18日4点18分,范围每个location标签
SELECT TOP(water_level,2) FROM h2o_feet WHERE time >= '2015-08-18T04:00:00Z' AND time < '2015-08-18T04:24:00Z' GROUP BY location
结果
name: h2o_feet
tags: location=coyote_creek
time top
---- ---
2015-08-18T04:00:00Z 2.943
2015-08-18T04:06:00Z 2.831 name: h2o_feet
tags: location=santa_monica
time top
---- ---
2015-08-18T04:06:00Z 4.055
2015-08-18T04:18:00Z 4.124
例子5
选择wtaer_level最大的2个值,在范围2015年8月18日 4点与2015年8月18日4点18分,location为santa_monica
SELECT TOP(water_level,2) FROM h2o_feet WHERE time >= '2015-08-18T04:00:00Z' AND time < '2015-08-18T04:24:00Z' AND location = 'santa_monica'
name: h2o_feet
--------------
time top
2015-08-18T04:06:00Z 4.055
2015-08-18T04:18:00Z 4.124
值得注意的是原始数据,water_level等于4.055在2015-08-18t04:06:00z和2015-08-18t04:12:00z。在相同的情况下,InfluxDB返回值更早的那个时间戳。

2、BOTTOM()函数

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

语法:

SELECT BOTTOM(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
选择三个最小值
SELECT BOTTOM(water_level,3) FROM h2o_feet
结果
name: h2o_feet
--------------
time bottom
2015-08-29T14:30:00Z -0.61
2015-08-29T14:36:00Z -0.591
2015-08-30T15:18:00Z -0.594
例子2
选择三个最小值,在输出中包含相关的location标签:
SELECT BOTTOM(water_level,3),location FROM h2o_feet
name: h2o_feet
--------------
time bottom location
2015-08-29T14:30:00Z -0.61 coyote_creek
2015-08-29T14:36:00Z -0.591 coyote_creek
2015-08-30T15:18:00Z -0.594 coyote_creek

例子3
选择2个location最小值
SELECT BOTTOM(water_level,location,2) FROM h2o_feet

结果
name: h2o_feet
--------------
time bottom location
2015-08-29T10:36:00Z -0.243 santa_monica
2015-08-29T14:30:00Z -0.61 coyote_creek
输出显示的位置每个标签值water_level底值(santa_monica和coyote_creek)。
注:查询语法select(< field_key >,< tag_key >,<n>),标签在哪里有X的不同的值,返回n或x字段的值,以较小者为准,并返回的每个点有一个独特的标签值。要演示这种行为,请参见上面示例查询的结果,其中n等于3,n等于1。 N = 3
SELECT BOTTOM(water_level,location,3) FROM h2o_feet
结果
name: h2o_feet
--------------
time bottom location
2015-08-29T10:36:00Z -0.243 santa_monica
2015-08-29T14:30:00Z -0.61 coyote_creek
 返回两个值而不是三InfluxDB因为位置标签只有两个值(santa_monica和coyote_creek)。
  • N = 1
SELECT BOTTOM(water_level,location,1) FROM h2o_feet
结果
name: h2o_feet
--------------
time bottom location
2015-08-29T14:30:00Z -0.61 coyote_creek
InfluxDB比较water_level底值在每个标签的位置值并返回water_level值越小。

例子4
每个location标签选择两个最小值 ,范围在2015年8月18日4点和2015年8月18日4点18分。
SELECT BOTTOM(water_level,2) FROM h2o_feet WHERE time >= '2015-08-18T04:00:00Z' AND time < '2015-08-18T04:24:00Z' GROUP BY location
name: h2o_feet
tags: location=coyote_creek
time bottom
---- ------
2015-08-18T04:12:00Z 2.717
2015-08-18T04:18:00Z 2.625 name: h2o_feet
tags: location=santa_monica
time bottom
---- ------
2015-08-18T04:00:00Z 3.911
2015-08-18T04:06:00Z 4.055
例子5
选择最小的两个值,在2015年8月18日4点和2015年8月18日4点18分,location为santa_monica
SELECT BOTTOM(water_level,2) FROM h2o_feet WHERE time >= '2015-08-18T04:00:00Z' AND time < '2015-08-18T04:24:00Z' AND location = 'santa_monica'
结果
name: h2o_feet
--------------
time bottom
2015-08-18T04:00:00Z 3.911
2015-08-18T04:06:00Z 4.055
值得注意的是原始数据,water_level等于4.055在2015-08-18t04:06:00z和2015-08-18t04:12:00z。在相同的情况下,InfluxDB返回值更早的那个时间戳。

3)FIRST()函数

作用:返回一个字段中最老的取值。

语法:

SELECT FIRST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
选择locaction 为santa_monica,water_level最老的值
SELECT FIRST(water_level) FROM h2o_feet WHERE location = 'santa_monica'
结果
name: h2o_feet
--------------
time first
2015-08-18T00:00:00Z 2.064
例子2
选择最老的water_level,2015-08-18T00:42:00Z 与 2015-08-18T00:54:00Z之间,并输出location tag
SELECT FIRST(water_level),location FROM h2o_feet WHERE time >= '2015-08-18T00:42:00Z' and time <= '2015-08-18T00:54:00Z'
结果
name: h2o_feet
--------------
time first location
2015-08-18T00:42:00Z 7.234 coyote_creek 例子3
选择最老的water_level,以location分组
SELECT FIRST(water_level) FROM h2o_feet GROUP BY location
结果
name: h2o_feet
tags: location = coyote_creek
time first
---- -----
2015-08-18T00:00:00Z 8.12 name: h2o_feet
tags: location = santa_monica
time first
---- -----
2015-08-18T00:00:00Z 2.064

4)LAST()函数

作用:返回一个字段中最新的取值。

语法:

SELECT LAST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
以location为santa_monica为条件,选择最新的water_level
SELECT LAST(water_level) FROM h2o_feet WHERE location = 'santa_monica'
结果
name: h2o_feet
--------------
time last
2015-09-18T21:42:00Z 4.938
例子2
2015-08-18T00:42:00Z 与 2015-08-18T00:54:00Z之间,选择最新的water_level,并输出location tag
SELECT LAST(water_level),location FROM h2o_feet WHERE time >= '2015-08-18T00:42:00Z' and time <= '2015-08-18T00:54:00Z'
结果
name: h2o_feet
--------------
time last location
2015-08-18T00:54:00Z 6.982 coyote_creek
例子2
选择最新的water_level,以location分组
SELECT LAST(water_level) FROM h2o_feet GROUP BY location
结果
name: h2o_feet
tags: location = coyote_creek
time last
---- ----
2015-09-18T16:24:00Z 3.235 name: h2o_feet
tags: location = santa_monica
time last
---- ----
2015-09-18T21:42:00Z 4.938
Note: LAST() does not return points that occur after now() unless the WHERE clause specifies that time range. See Frequently Encountered Issues for how to query after now().

5)MAX()函数

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

语法:

SELECT MAX(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
选择表h2o_feet中最大的值water_level
SELECT MAX(water_level) FROM h2o_feet
结果
name: h2o_feet
--------------
time max
2015-08-29T07:24:00Z 9.964
例子2
选择表h2o_feet中最大的值water_level,并输出location tag
SELECT MAX(water_level),location FROM h2o_feet
结果
name: h2o_feet
--------------
time max location
2015-08-29T07:24:00Z 9.964 coyote_creek
例子3
每12分选择表h2o_feet中每个location最大的值water_level,指定的时间范围
SELECT MAX(water_level) FROM h2o_feet WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:54:00Z' GROUP BY time(12m), location
name: h2o_feet
tags: location = coyote_creek
time max
---- ---
2015-08-18T00:00:00Z 8.12
2015-08-18T00:12:00Z 7.887
2015-08-18T00:24:00Z 7.635
2015-08-18T00:36:00Z 7.372
2015-08-18T00:48:00Z 7.11 name: h2o_feet
tags: location = santa_monica
time max
---- ---
2015-08-18T00:00:00Z 2.116
2015-08-18T00:12:00Z 2.126
2015-08-18T00:24:00Z 2.051
2015-08-18T00:36:00Z 2.067
2015-08-18T00:48:00Z 1.991

6)MIN()函数

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

语法:

SELECT MIN(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
选择表h2o_feet中最小的值water_level
SELECT MIN(water_level) FROM h2o_feet
结果
name: h2o_feet
--------------
time min
2015-08-29T14:30:00Z -0.61
例子2
选择表h2o_feet中最小的值water_level,并输出location tag
SELECT MIN(water_level),location FROM h2o_feet
结果
name: h2o_feet
--------------
time min location
2015-08-29T14:30:00Z -0.61 coyote_creek
例子3
每12分选择表h2o_feet中每个location最小的值water_level,指定的时间范围
SELECT MIN(water_level) FROM h2o_feet WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:54:00Z' GROUP BY time(12m), location
结果
name: h2o_feet
tags: location = coyote_creek
time min
---- ---
2015-08-18T00:00:00Z 8.005
2015-08-18T00:12:00Z 7.762
2015-08-18T00:24:00Z 7.5
2015-08-18T00:36:00Z 7.234
2015-08-18T00:48:00Z 7.11 name: h2o_feet
tags: location = santa_monica
time min
---- ---
2015-08-18T00:00:00Z 2.064
2015-08-18T00:12:00Z 2.028
2015-08-18T00:24:00Z 2.041
2015-08-18T00:36:00Z 2.057
2015-08-18T00:48:00Z 1.991

7)PERCENTILE()函数

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

百分值是介于100到0之间的整数或浮点数,包括100。

语法:

SELECT PERCENTILE(<field_key>, <N>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子1
计算location为coyote_creek,排位为5%的water_level值。
 SELECT PERCENTILE(water_level,5) FROM h2o_feet WHERE location = 'coyote_creek'
结果
: h2o_feet
--------------
time percentile
2015-09-09T11:42:00Z 1.148
解释:
就是将water_level字段按照不同的location求百分比,然后取第五位数据。
值1.148大于5%的位置的值(The value 1.148 is larger than 5% of the values in water_level where location equals coyote_creek.)
例子2
计算location为coyote_creek,排位为5%的water_level值,并输出location tag。
SELECT PERCENTILE(water_level,5),location FROM h2o_feet
结果
name: h2o_feet
--------------
time percentile location
2015-08-28T12:06:00Z 1.122 santa_monica
例子2
计算以location分组,排在100%的值
SELECT PERCENTILE(water_level, 100) FROM h2o_feet GROUP BY location
结果
name: h2o_feet
tags: location = coyote_creek
time percentile
---- ----------
2015-08-29T07:24:00Z 9.964 name: h2o_feet
tags: location = santa_monica
time percentile
---- ----------
2015-08-29T03:54:00Z 7.205
注意:PERCENTILE(<field_key>,100)相当于MAX(<field_key>)
目前,PERCENTILE(<field_key>,0)不相当于MIN(<field_key>)
注意,PERCENTILE(<field_key>, 50)接近于MEDIAN(),MEDIAN()如果是偶娄个则返回中间两个值的平均值
详细资料可参考官网:https://docs.influxdata.com/influxdb/v1.3/query_language/functions
 
 
 

influxDB选择类函数的更多相关文章

  1. influxDB 变换类函数

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

  2. influxDB聚合类函数

    1)count()函数 返回一个(field)字段中的非空值的数量. SELECT COUNT(<field_key>) FROM <measurement_name> [WH ...

  3. InfluxDB学习系列教程,InfluxDB入门必备教程

    nfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 本文是一系列InfluxDB学习教程的目录,现主 ...

  4. InfluxDB学习之InfluxDB的安装和简介

    最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:Infl ...

  5. Influxdb原理详解

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 15 部分: InfluxDB学习之InfluxDB的安装和简介 InfluxDB学习之InfluxDB的基本概念 Infl ...

  6. InfluxDB学习之InfluxDB的基本操作| Linux大学

    来源地址:https://www.linuxdaxue.com/influxdb-study-series-manual.html 本文属于<InfluxDB系列教程>文章系列,该系列共包 ...

  7. InfluxDB执行语句管理(query management)

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Influ ...

  8. InfluxDB数据备份和恢复方法,支持本地和远程备份

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Influ ...

  9. InfluxDB安装后web页面无法访问的解决方案

    本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 16 部分: InfluxDB学习之InfluxDB的安装和简介 InfluxDB学习之InfluxDB的基本概念 Infl ...

随机推荐

  1. CSS--百度百科

    层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设 ...

  2. .Net之路(十五)图解LoadRunner压力測试

    在项目编码阶段结束后,就须要进行软件測试. 成为软件开发过程中一个不可缺少的环节.而自己主动化測试也是将逐步取代人工繁杂的測试.压力測试就是软件測试对软件性能评估的一个方面,以下就简介我在使用load ...

  3. Spring 注入简介

    注入方式有三种,setter,构造方法,接口注入.   常用的是setter注入和构造方法注入.   setter注入: <?xml version="1.0" encodi ...

  4. 虚拟机下安装CentOS无法上网的解决方式

    我使用VMware虚拟机安装Ubuntu和CentOS,都使用NAT模式连接网络,可是Ubutun能够正常上网,而CentOS不能连接到网络. 原来Centos7默认是不启用有线网卡的.须要手动开启. ...

  5. hystrix-turbine实现多服务监控

    原文地址:http://www.cnblogs.com/skyblog/p/5633757.html 1.   概述 Demo地址:http://git.oschina.net/zhou666/spr ...

  6. 10710 - Chinese Shuffle(数论+完美洗牌)

    UVA 10710 - Chinese Shuffle 题目链接 题意:给定n张牌,完美洗牌n - 1次,问是否会变回原来的序列 思路:完美洗牌: 如果有a1a2a3...anb1b2b3...bn的 ...

  7. 181. Flip Bits【easy】

    181. Flip Bits[easy] Determine the number of bits required to flip if you want to convert integer n  ...

  8. mvn test中文乱码处理

    mvn test执行测试的时候调用的实际是maven-surefire-plugin插件因为mvn启动时会新建一个jvm进程,默认没有指定编码所以中文乱码了.启动时`<argLine>-D ...

  9. UI-10-plist文件及UITableView的高级应用①

    课程要点: plist文件的新建与读取 给UITableView设置变化的值 单元格的删除.插入及刷新 plist文件的新建与读取 新建plist Commadn+N,iOS->Resouce- ...

  10. vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题

    1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...