聚合函數
本文檔主要介紹了聚合函數(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 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: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。