聚合函数

更新时间:

本文档主要介绍了聚合函数(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 descriptionwater_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:00Z2015-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 descriptionwater_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:00Z2015-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 feet

INTEGRAL()

返回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:00Z2015-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:00Z2015-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:00Z2015-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 descriptionwater_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:00Z2015-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:00Z2015-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:00Z2015-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:00Z2015-08-18T00:54:00Z之间,并将查询结果按12分钟的时间间隔和每个tag进行分组,同时,该查询用18000填充没有数据的时间间隔,并将返回的数据点个数和序列个数分别限制为4和1。