聚合函数
本文档主要介绍了聚合函数(Aggregations)的语法结构、语法说明以及使用示例。
COUNT()
返回非空的field value的个数。
语法
SELECT COUNT([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]嵌套语法
SELECT COUNT(DISTINCT([*|<field_key>|/<regular_expression>/]))[...]语法说明
COUNT(field_key):返回field key对应的field value的个数。
COUNT(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value的个数。
COUNT(*):返回在measurement中每个field key对应的field value的个数。
COUNT():支持所有数据类型的field value。InfluxQL支持将DISTINCT()函数嵌套在COUNT()函数里。
示例1:计算指定field key对应的field value的个数
SELECT COUNT("water_level") FROM "h2o_feet"
name: h2o_feet
time count
---------
1970-01-01T00:00:00Z15258该查询返回measurement h2o_feet中field key water_level对应的非空field value的个数。
示例2:计算measurement中每个field key对应的field value的个数
SELECT COUNT(*) FROM "h2o_feet"
name: h2o_feet
time count_level description count_water_level
--------------------------------------------
1970-01-01T00:00:00Z1525815258该查询返回measurement h2o_feet中每个field key对应的非空field value的个数。measurement h2o_feet中有两个field key:level description和water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value的个数
SELECT COUNT(/water/) FROM "h2o_feet"
name: h2o_feet
time count_water_level
---------------------
1970-01-01T00:00:00Z15258该查询返回measurement h2o_feet中每个包含单词water的field key对应的非空field value的个数。
示例四:计算指定field key对应的field value的个数并包含多个子句
SELECT COUNT("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(200) LIMIT 7 SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time count
---------
2015-08-17T23:48:00Z200
2015-08-18T00:00:00Z2
2015-08-18T00:12:00Z2
2015-08-18T00:24:00Z2
2015-08-18T00:36:00Z2
2015-08-18T00:48:00Z2该查询返回field key water_level对应的非空field value的个数,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用200填充没有数据的时间间隔,并将返回的数据点个数和序列个数分别限制为7和1。
示例五:计算指定field key对应的不同field value的个数
SELECT COUNT(DISTINCT("level description")) FROM "h2o_feet"
name: h2o_feet
time count
---------
1970-01-01T00:00:00Z4该查询返回measurement h2o_feet中field key level description对应的不同field value的个数。
COUNT()的常见问题
大多数InfluxQL函数对于没有数据的时间间隔返回null值,如果不想返回null,可以使用fill()函数,fill(<fill_option>)将null值替换成fill_option。对于没有数据的时间间隔,COUNT()返回0,而fill(<fill_option>)可以将0替换成fill_option。
示例
> SELECT COUNT("water_level") FROM "h2o_feet" WHERE time >='2015-09-18T21:24:00Z' AND time <='2015-09-18T21:54:00Z' GROUP BY time(12m)
name: h2o_feet
time count
---------
2015-09-18T21:24:00Z2
2015-09-18T21:36:00Z2
2015-09-18T21:48:00Z0
> SELECT COUNT("water_level") FROM "h2o_feet" WHERE time >='2015-09-18T21:24:00Z' AND time <='2015-09-18T21:54:00Z' GROUP BY time(12m) fill(800000)
name: h2o_feet
time count
---------
2015-09-18T21:24:00Z2
2015-09-18T21:36:00Z2
2015-09-18T21:48:00Z800000上述代码块中的第一个查询没有使用fill(),最后一个时间间隔中没有数据,因此该时间间隔返回的值是0。第二个查询使用了fill(800000),它将最后一个时间间隔的返回值0替换成800000。
DISTINCT()
返回不同的field value。
语法
SELECT DISTINCT([*|<field_key>|/<regular_expression>/]) FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]嵌套语法
SELECT COUNT(DISTINCT([*|<field_key>|/<regular_expression>/]))[...]语法说明
DISTINCT(field_key):返回field key对应的不同的field value。
DISTINCT(/regular_expression/):返回与正则表达式匹配的每个field key对应的不同的field value。
DISTINCT(*):返回在measurement中每个field key对应的不同的field value。
DISTINCT():支持所有数据类型的field value。InfluxQL支持将DISTINCT()函数嵌套在COUNT()函数里。
示例1:列出指定field key对应的不同的field value
SELECT DISTINCT("level description") FROM "h2o_feet"
name: h2o_feet
time distinct
------------
1970-01-01T00:00:00Z between 6 and 9 feet
1970-01-01T00:00:00Z below 3 feet
1970-01-01T00:00:00Z between 3 and 6 feet
1970-01-01T00:00:00Z at or greater than 9 feet该查询返回measurement h2o_feet中field key level description对应的不同field value。
示例2:列出measurement中每个field key对应的不同的field value
SELECT DISTINCT(*) FROM "h2o_feet"
name: h2o_feet
time distinct_level description distinct_water_level
--------------------------------------------------
1970-01-01T00:00:00Z between 6 and 9 feet 8.12
1970-01-01T00:00:00Z between 3 and 6 feet 8.005
1970-01-01T00:00:00Z at or greater than 9 feet 7.887
1970-01-01T00:00:00Z below 3 feet 7.762
[...]该查询返回measurement h2o_feet中每个field key对应的不同的field value。measurement h2o_feet中有两个field key:level description和water_level。
示例3:列出与正则表达式匹配的每个field key对应的不同的field value
SELECT DISTINCT(/description/) FROM "h2o_feet"
name: h2o_feet
time distinct_level description
------------------------------
1970-01-01T00:00:00Z below 3 feet
1970-01-01T00:00:00Z between 6 and 9 feet
1970-01-01T00:00:00Z between 3 and 6 feet
1970-01-01T00:00:00Z at or greater than 9 feet该查询返回measurement h2o_feet中每个包含单词description的field key对应的不同的field value。
示例4:列出指定field key对应的不同的field value并包含多个子句
> SELECT DISTINCT("level description") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time distinct
------------
2015-08-18T00:00:00Z between 6 and 9 feet
2015-08-18T00:12:00Z between 6 and 9 feet
2015-08-18T00:24:00Z between 6 and 9 feet
2015-08-18T00:36:00Z between 6 and 9 feet
2015-08-18T00:48:00Z between 6 and 9 feet该查询返回field key level description对应的不同的field value,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询将返回的序列个数限制为1。
示例5:计算指定field key对应的不同field value的个数
SELECT COUNT(DISTINCT("level description")) FROM "h2o_feet"
name: h2o_feet
time count
---------
1970-01-01T00:00:00Z4该查询返回measurement h2o_feet中field key level description对应的不同field value的个数。
DISTINCT()的常见问题
在INTO子句中使用DISTINCT()可能会导致TSDB For InfluxDB®覆盖目标measurement中的数据点。DISTINCT()通常返回多个具有相同时间戳的结果;TSDB For InfluxDB®假设在相同序列中并具有相同时间戳的数据点是重复数据点,并简单地用目标measurement中最新的数据点覆盖重复数据点。
示例
下面代码块中的第一个查询使用了DISTINCT(),并返回四个结果。请注意,每个结果都有相同的时间戳。第二个查询将INTO子句添加到查询中,并将查询结果写入measurement distincts。最后一个查询选择measurement distincts中所有数据。因为原来的四个结果是重复的(它们在相同的序列,有相同的时间戳),所以最后一个查询只返回一个数据点。当系统遇到重复数据点时,它会用最近的数据点覆盖之前的数据点。
SELECT DISTINCT("level description") FROM "h2o_feet"
name: h2o_feet
time distinct
------------
1970-01-01T00:00:00Z below 3 feet
1970-01-01T00:00:00Z between 6 and 9 feet
1970-01-01T00:00:00Z between 3 and 6 feet
1970-01-01T00:00:00Z at or greater than 9 feet
SELECT DISTINCT("level description") INTO "distincts" FROM "h2o_feet"
name: result
time written
-----------
1970-01-01T00:00:00Z4
SELECT * FROM "distincts"
name: distincts
time distinct
------------
1970-01-01T00:00:00Z at or greater than 9 feetINTEGRAL()
返回field value曲线下的面积,即关于field value的积分。
语法
SELECT INTEGRAL([*|<field_key>|/<regular_expression>/][,<unit>])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
TSDB For InfluxDB®计算field value曲线下的面积,并将这些结果转换为每个unit的总面积。参数unit的值是一个整数,单位为时间,这个参数是可选的。如果查询没有指定unit的值,那么unit默认为1秒。
INTEGRAL(field_key):返回field key对应的field value曲线下的面积。
INTEGRAL(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value曲线下的面积。
INTEGRAL(*):返回在measurement中每个field key对应的field value曲线下的面积。
INTEGRAL():不支持fill()。INTEGRAL()支持数据类型为int64和float64的field value。
示例1:计算指定field key对应的field value的积分
SELECT INTEGRAL("water_level") FROM "h2o_feet" WHERE "location"='santa_monica' AND time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z'
name: h2o_feet
time integral
------------
1970-01-01T00:00:00Z3732.66该查询返回measurement h2o_feet中field key water_level对应的field value曲线下的面积(以秒为单位)。
示例2:计算指定field key对应的field value的积分并指定unit
SELECT INTEGRAL("water_level",1m) FROM "h2o_feet" WHERE "location"='santa_monica' AND time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z'
name: h2o_feet
time integral
------------
1970-01-01T00:00:00Z62.211该查询返回measurement h2o_feet中field key water_level对应的field value曲线下的面积(以分钟为单位)。
示例3:计算measurement中每个field key对应的field value的积分并指定unit
SELECT INTEGRAL(*,1m) FROM "h2o_feet" WHERE "location"='santa_monica' AND time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z'
name: h2o_feet
time integral_water_level
------------------------
1970-01-01T00:00:00Z62.211该查询返回measurement h2o_feet中每个存储数值的field key对应的field value曲线下的面积(以分钟为单位)。measurement h2o_feet中只有一个数值类型的field:water_level。
示例4:计算与正则表达式匹配的每个field key对应的field value的积分并指定unit
SELECT INTEGRAL(/water/,1m) FROM "h2o_feet" WHERE "location"='santa_monica' AND time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z'
name: h2o_feet
time integral_water_level
------------------------
1970-01-01T00:00:00Z62.211该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value曲线下的面积(以分钟为单位)。
示例5:计算指定field key对应的field value的积分并包含多个子句
SELECT INTEGRAL("water_level",1m) FROM "h2o_feet" WHERE "location"='santa_monica' AND time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z' GROUP BY time(12m) LIMIT 1
name: h2o_feet
time integral
------------
2015-08-18T00:00:00Z24.972该查询返回measurement h2o_feet中field key water_level对应的field value曲线下的面积(以分钟为单位),它涵盖的时间范围在2015-08-18T00:00:00Z和2015-08-18T00:30:00Z之间,并将查询结果按12分钟的时间间隔进行分组。同时,该查询将返回的数据点个数限制为1。
MEAN()
返回field value的平均值。
语法
SELECT MEAN([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
MEAN(field_key):返回field key对应的field value的平均值。
MEAN(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value的平均值。
MEAN(*):返回在measurement中每个field key对应的field value的平均值。
MEAN():支持数据类型为int64和float64的field value。
示例1:计算指定field key对应的field value的平均值
SELECT MEAN("water_level") FROM "h2o_feet"
name: h2o_feet
time mean
--------
1970-01-01T00:00:00Z4.442107025822522该查询返回measurement h2o_feet中field key water_level对应的field value的平均值。
示例2:计算measurement中每个field key对应的field value的平均值
SELECT MEAN(*) FROM "h2o_feet"
name: h2o_feet
time mean_water_level
--------------------
1970-01-01T00:00:00Z4.442107025822522该查询返回measurement h2o_feet中每个存储数值的field key对应的field value的平均值。measurement h2o_feet中只有一个数值类型的field:water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value的平均值
SELECT MEAN(/water/) FROM "h2o_feet"
name: h2o_feet
time mean_water_level
--------------------
1970-01-01T00:00:00Z4.442107025822523该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value的平均值。
示例4:计算指定field key对应的field value的平均值并包含多个子句
SELECT MEAN("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(9.01) LIMIT 7 SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time mean
--------
2015-08-17T23:48:00Z9.01
2015-08-18T00:00:00Z8.0625
2015-08-18T00:12:00Z7.8245
2015-08-18T00:24:00Z7.5675
2015-08-18T00:36:00Z7.303
2015-08-18T00:48:00Z7.046该查询返回measurement h2o_feet中field key water_level对应的field value的平均值,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:30:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用9.01填充没有数据的时间间隔,并将返回的数据点个数和序列个数分别限制为7和1。
MEDIAN()
返回排好序的field value的中位数。
语法
SELECT MEDIAN([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
MEDIAN(field_key):返回field key对应的field value的中位数。
MEDIAN(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value的中位数。
MEDIAN(*):返回在measurement中每个field key对应的field value的中位数。
MEDIAN()支持数据类型为int64和float64的field value。
MEDIAN()近似于PERCENTILE(field_key, 50),除非field key包含的field value个数为偶数,那么这时候MEDIAN()将返回两个中间值的平均数。
示例1:计算指定field key对应的field value的中位数
SELECT MEDIAN("water_level") FROM "h2o_feet"
name: h2o_feet
time median
----------
1970-01-01T00:00:00Z4.124该查询返回measurement h2o_feet中field key water_level对应的field value的中位数。
示例2:计算measurement中每个field key对应的field value的中位数
SELECT MEDIAN(*) FROM "h2o_feet"
name: h2o_feet
time median_water_level
----------------------
1970-01-01T00:00:00Z4.124该查询返回measurement h2o_feet中每个存储数值的field key对应的field value的中位数。measurement h2o_feet中只有一个数值类型的field:water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value的中位数
SELECT MEDIAN(/water/) FROM "h2o_feet"
name: h2o_feet
time median_water_level
----------------------
1970-01-01T00:00:00Z4.124该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value的中位数。
示例4:计算指定field key对应的field value的中位数并包含多个子句
SELECT MEDIAN("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(700) LIMIT 7 SLIMIT 1 SOFFSET 1
name: h2o_feet
tags: location=santa_monica
time median
----------
2015-08-17T23:48:00Z700
2015-08-18T00:00:00Z2.09
2015-08-18T00:12:00Z2.077
2015-08-18T00:24:00Z2.0460000000000003
2015-08-18T00:36:00Z2.0620000000000003
2015-08-18T00:48:00Z700该查询返回measurement h2o_feet中field key water_level对应的field value的中位数,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用700填充没有数据的时间间隔,将返回的数据点个数和序列个数分别限制为7和1,并将返回的序列偏移一个(即第一个序列的数据不返回)。
MODE()
返回field value中出现频率最高的值。
语法
SELECT MODE([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
MODE(field_key):返回field key对应的field value中出现频率最高的值。
MODE(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value中出现频率最高的值。
MODE(*):返回在measurement中每个field key对应的field value中出现频率最高的值。
MODE():支持所有数据类型的field value。
如果出现频率最高的值有两个或多个并且它们之间有关联,那么MODE()返回具有最早时间戳的field value。
示例1:计算指定field key对应的field value中出现频率最高的值
SELECT MODE("level description") FROM "h2o_feet"
name: h2o_feet
time mode
--------
1970-01-01T00:00:00Z between 3 and 6 feet该查询返回measurement h2o_feet中field key level description对应的field value中出现频率最高的值。
示例2:计算measurement中每个field key对应的field value中出现频率最高的值
SELECT MODE(*) FROM "h2o_feet"
name: h2o_feet
time mode_level description mode_water_level
------------------------------------------
1970-01-01T00:00:00Z between 3 and 6 feet 2.69该查询返回measurement h2o_feet中每个field key对应的field value中出现频率最高的值。measurement h2o_feet中有两个field key:level description和water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value中出现频率最高的值
SELECT MODE(/water/) FROM "h2o_feet"
name: h2o_feet
time mode_water_level
--------------------
1970-01-01T00:00:00Z2.69该查询返回measurement h2o_feet中每个包含单词water的field key对应的field value中出现频率最高的值。
示例4:计算指定field key对应的field value中出现频率最高的值并包含多个子句
SELECT MODE("level description") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* LIMIT 3 SLIMIT 1 SOFFSET 1
name: h2o_feet
tags: location=santa_monica
time mode
--------
2015-08-17T23:48:00Z
2015-08-18T00:00:00Z below 3 feet
2015-08-18T00:12:00Z below 3 feet该查询返回measurement h2o_feet中field key water_level对应的field value中出现频率最高的值,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询将返回的数据点个数和序列个数分别限制为3和1,并将返回的序列偏移一个(即第一个序列的数据不返回)。
SPREAD()
返回field value中最大值和最小值之差。
语法
SELECT SPREAD([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
SPREAD(field_key):返回field key对应的field value中最大值和最小值之差。
SPREAD(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value中最大值和最小值之差。
SPREAD(*):返回在measurement中每个field key对应的field value中最大值和最小值之差。
SPREAD():支持数据类型为int64和float64的field value。
示例1:计算指定field key对应的field value中最大值和最小值之差
SELECT SPREAD("water_level") FROM "h2o_feet"
name: h2o_feet
time spread
----------
1970-01-01T00:00:00Z10.574该查询返回measurement h2o_feet中field key water_level对应的field value中最大值和最小值之差。
示例2:计算measurement中每个field key对应的field value中最大值和最小值之差
SELECT SPREAD(*) FROM "h2o_feet"
name: h2o_feet
time spread_water_level
----------------------
1970-01-01T00:00:00Z10.574该查询返回measurement h2o_feet中每个存储数值的field key对应的field value中最大值和最小值之差。measurement h2o_feet中只有一个数值类型的field:water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value中最大值和最小值之差
SELECT SPREAD(/water/) FROM "h2o_feet"
name: h2o_feet
time spread_water_level
----------------------
1970-01-01T00:00:00Z10.574该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value中最大值和最小值之差。
示例4:计算指定field key对应的field value中最大值和最小值之差并包含多个子句
SELECT SPREAD("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(18) LIMIT 3 SLIMIT 1 SOFFSET 1
name: h2o_feet
tags: location=santa_monica
time spread
----------
2015-08-17T23:48:00Z18
2015-08-18T00:00:00Z0.052000000000000046
2015-08-18T00:12:00Z0.09799999999999986该查询返回measurement h2o_feet中field key water_level对应的field value中最大值和最小值之差,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用18填充没有数据的时间间隔,将返回的数据点个数和序列个数分别限制为3和1,并将返回的序列偏移一个(即第一个序列的数据不返回)。
STDDEV()
返回field value的标准差。
语法
SELECT STDDEV([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
STDDEV(field_key):返回field key对应的field value的标准差。
STDDEV(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value的标准差。
STDDEV(*):返回在measurement中每个field key对应的field value的标准差。
STDDEV():支持数据类型为int64和float64的field value。
示例1:计算指定field key对应的field value的标准差
SELECT STDDEV("water_level") FROM "h2o_feet"
name: h2o_feet
time stddev
----------
1970-01-01T00:00:00Z2.279144584196141该查询返回measurement h2o_feet中field key water_level对应的field value的标准差。
示例2:计算measurement中每个field key对应的field value的标准差
SELECT STDDEV(*) FROM "h2o_feet"
name: h2o_feet
time stddev_water_level
----------------------
1970-01-01T00:00:00Z2.279144584196141该查询返回measurement h2o_feet中每个存储数值的field key对应的field value的标准差。measurement h2o_feet中只有一个数值类型的field:water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value的标准差
SELECT STDDEV(/water/) FROM "h2o_feet"
name: h2o_feet
time stddev_water_level
----------------------
1970-01-01T00:00:00Z2.279144584196141该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value的标准差。
示例4:计算指定field key对应的field value的标准差并包含多个子句
SELECT STDDEV("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(18000) LIMIT 2 SLIMIT 1 SOFFSET 1
name: h2o_feet
tags: location=santa_monica
time stddev
----------
2015-08-17T23:48:00Z18000
2015-08-18T00:00:00Z0.03676955262170051该查询返回measurement h2o_feet中field key water_level对应的field value的标准差,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用18000填充没有数据的时间间隔,将返回的数据点个数和序列个数分别限制为2和1,并将返回的序列偏移一个(即第一个序列的数据不返回)。
SUM()
返回field value的总和。
语法
SELECT SUM([*|<field_key>|/<regular_expression>/])[INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]语法说明
SUM(field_key):返回field key对应的field value的总和。
SUM(/regular_expression/):返回与正则表达式匹配的每个field key对应的field value的总和。
SUM(*):返回在measurement中每个field key对应的field value的总和。
SUM():支持数据类型为int64和float64的field value。
示例1:计算指定field key对应的field value的总和
SELECT SUM("water_level") FROM "h2o_feet"
name: h2o_feet
time sum
-------
1970-01-01T00:00:00Z67777.66900000004该查询返回measurement h2o_feet中field key water_level对应的field value的总和。
示例2:计算measurement中每个field key对应的field value的总和
SELECT SUM(*) FROM "h2o_feet"
name: h2o_feet
time sum_water_level
-------------------
1970-01-01T00:00:00Z67777.66900000004该查询返回measurement h2o_feet中每个存储数值的field key对应的field value的总和。measurement h2o_feet中只有一个数值类型的field:water_level。
示例3:计算与正则表达式匹配的每个field key对应的field value的总和
SELECT SUM(/water/) FROM "h2o_feet"
name: h2o_feet
time sum_water_level
-------------------
1970-01-01T00:00:00Z67777.66900000004该查询返回measurement h2o_feet中每个存储数值并包含单词water的field key对应的field value的总和。
示例4:计算指定field key对应的field value的总和并包含多个子句
SELECT SUM("water_level") FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(12m),* fill(18000) LIMIT 4 SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time sum
-------
2015-08-17T23:48:00Z18000
2015-08-18T00:00:00Z16.125
2015-08-18T00:12:00Z15.649
2015-08-18T00:24:00Z15.135该查询返回measurement h2o_feet中field key water_level对应的field value的总和,它涵盖的时间范围在2015-08-17T23:48:00Z和2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用18000填充没有数据的时间间隔,并将返回的数据点个数和序列个数分别限制为4和1。