1. 聚合函數(shù)
1.1 COUNT()
描述:返回單個字段中非空(non-null)值的數(shù)量
語法
SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
- 計算字段
water_level
非空值的數(shù)量
> SELECT COUNT("water_level") FROM "h2o_feet"
name: h2o_feet
--------------
time count
1970-01-01T00:00:00Z 15258
- 計算字段
water_level
非空值的數(shù)量,按時間間隔分組
> SELECT COUNT("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-09-18T17:00:00Z' GROUP BY time(4d)
name: h2o_feet
--------------
time count
2015-08-17T00:00:00Z 1440
2015-08-21T00:00:00Z 1920
2015-08-25T00:00:00Z 1920
2015-08-29T00:00:00Z 1920
2015-09-02T00:00:00Z 1915
2015-09-06T00:00:00Z 1920
2015-09-10T00:00:00Z 1920
2015-09-14T00:00:00Z 1920
2015-09-18T00:00:00Z 335
- 表
h2o_feet
有兩個數(shù)據(jù)字段level description
和water_level
,可以通過count(*)
統(tǒng)計所有的字段
> SELECT COUNT(*) FROM "h2o_feet"
name: h2o_feet
--------------
time count_level description count_water_level
1970-01-01T00:00:00Z 15258 15258
1.2 DISTINCT()
說明:返回字段的唯一值(去重)
語法
SELECT DISTINCT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
- 全表單字段
> 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
- 分組單字段
> SELECT DISTINCT("level description") FROM "h2o_feet" GROUP BY "location"
name: h2o_feet
tags: location=coyote_creek
time distinct
---- --------
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 below 3 feet
1970-01-01T00:00:00Z at or greater than 9 feet
name: h2o_feet
tags: location=santa_monica
time distinct
---- --------
1970-01-01T00:00:00Z below 3 feet
1970-01-01T00:00:00Z between 3 and 6 feet
1970-01-01T00:00:00Z between 6 and 9 feet
- 多字段
> SELECT DISTINCT(*) FROM "h2o_feet" LIMIT 5
name: h2o_feet
--------------
time distinct_level description distinct_water_level
1970-01-01T00:00:00Z below 3 feet 2.064
1970-01-01T00:00:00Z between 6 and 9 feet 8.12
1970-01-01T00:00:00Z 2.116
1970-01-01T00:00:00Z 8.005
1970-01-01T00:00:00Z 2.028
1.3 MEAN()
說明:算術平均值,字段類型必須為整型(int64
)或浮點型(float64
)
語法
SELECT MEAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
- 時間在
2016-08-18T00:00:00Z
和2016-09-18T17:00:00Z
之間秕豫,按4天(time(4d)
)進行分組
> SELECT MEAN("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-09-18T17:00:00Z' GROUP BY time(4d)
name: h2o_feet
--------------
time mean
2016-08-17T00:00:00Z 4.322029861111125
2016-08-21T00:00:00Z 4.251395512375667
2016-08-25T00:00:00Z 4.285036458333324
2016-08-29T00:00:00Z 4.469495801899061
2016-09-02T00:00:00Z 4.382785378590083
2016-09-06T00:00:00Z 4.28849666349042
...
1.4 MEDIAN()
說明:返回中位數(shù)朴艰,字段類型必須為整型(int64
)或浮點型(float64
),*
表示所有字段
語法
SELECT MEDIAN(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
> SELECT MEDIAN("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY "location"
name: h2o_feet
tags: location = coyote_creek
time median
---- ------
2015-08-18T00:00:00Z 7.8245
name: h2o_feet
tags: location = santa_monica
time median
---- ------
2015-08-18T00:00:00Z 2.0575
1.5 MODE()
說明:返回最頻繁的(出現(xiàn)頻率最高的)值混移,如果有多個頻率相同的值則返回第一個(最早的)
語法
SELECT MODE(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
> SELECT MODE("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY "location"
name: h2o_feet
tags: location = coyote_creek
time mode
---- ------
2015-08-18T00:00:00Z 7
name: h2o_feet
tags: location = santa_monica
time mode
---- ------
2015-08-18T00:00:00Z 2
1.5 SPREAD()
說明:返回字段的最小值和最大值之間的差值祠墅。 該字段必須是int64
或float64
類型; *
表示表中的所有int64
或float64
字段。
語法
SELECT SPREAD(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
> SELECT SPREAD("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-09-18T17:00:00Z' AND time < '2015-09-18T20:30:00Z' GROUP BY time(30m)
name: h2o_feet
--------------
time spread
2015-09-18T17:00:00Z 0.16699999999999982
2015-09-18T17:30:00Z 0.5469999999999997
2015-09-18T18:00:00Z 0.47499999999999964
2015-09-18T18:30:00Z 0.2560000000000002
2015-09-18T19:00:00Z 0.23899999999999988
2015-09-18T19:30:00Z 0.1609999999999996
2015-09-18T20:00:00Z 0.16800000000000015
1.6 SUM()
說明:返回單個字段中所有值的總和歌径。 該字段必須是int64
或float64
類型; *
表示表中的所有int64
或float64
字段毁嗦。
語法
SELECT SUM(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
例子:
> SELECT SUM("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time < '2015-09-18T17:00:00Z' GROUP BY time(5d)
name: h2o_feet
--------------
time sum
2015-08-18T00:00:00Z 10334.908999999983
2015-08-23T00:00:00Z 10113.356999999995
2015-08-28T00:00:00Z 10663.683000000006
2015-09-02T00:00:00Z 10451.321
2015-09-07T00:00:00Z 10871.817999999994
2015-09-12T00:00:00Z 11459.00099999999
2015-09-17T00:00:00Z 3627.762000000003
1.7 STDDEV()
說明:返回單個字段中的值的標準偏差。 該字段必須是int64
或float64
類型回铛。
語法
SELECT STDDEV(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2. 選擇器函數(shù)
2.1 BOTTOM()
說明:返回單個字段中最小的N
個值狗准。 字段類型必須為int64
或float64
。當同步指定tag
時茵肃,設定tag
的記錄數(shù)是X
腔长,如果N
>X
時只返回X
條記錄,每個tag
一條,否則返回最小的N
條數(shù)據(jù)验残。
語法
SELECT BOTTOM(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.2 FIRST()
說明:返回單個字段的最舊值(由時間戳確定)捞附。
語法
SELECT FIRST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.3 LAST()
說明:返回單個字段的最新值(由時間戳確定)。
SELECT LAST(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.4 MAX()
說明:返回單個字段中的最大值您没。 該字段必須是int64
鸟召,float64
或boolean
。
語法
SELECT MAX(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.5 MIN()
說明:返回單個字段中的最小值氨鹏。 該字段必須是int64
欧募,float64
或boolean
。
語法
SELECT MIN(<field_key>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.6 PERCENTILE()
說明:返回單個字段的排序值的第N
個百分位數(shù)值仆抵。 該字段必須是int64
或float64
類型跟继。 百分位數(shù)N
必須是0
到100
之間的整數(shù)或浮點數(shù),包括0
和100
肢础。算法找度娘还栓。
語法
SELECT PERCENTILE(<field_key>, <N>)[,<tag_key(s)>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
2.7 SAMPLE()
說明:返回指定字段的N
個點的隨機抽樣。 InfluxDB
使用儲層采樣來生成隨機點传轰。 SAMPLE()
支持所有字段類型剩盒。
語法
SELECT SAMPLE(<field_key>,<N>) FROM_clause [WHERE_clause] [GROUP_BY_clause]
2.8 TOP()
說明:返回單個字段中最大的N
個值。 字段類型必須為int64
或float64
。
語法
SELECT TOP(<field_key>[,<tag_keys>],<N>)[,<tag_keys>] FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>]
3. 轉換函數(shù)
3.1 CUMULATIVE_SUM()
說明:返回單個字段的連續(xù)字段值的累積和辽聊。 字段類型必須為int64
或float64
纪挎。
基礎語法
SELECT CUMULATIVE_SUM(<field_key>) FROM_clause WHERE_clause
高級語法
支持如下嵌套函數(shù)類型:COUNT()
, MEAN()
, MEDIAN()
, MODE()
, SUM()
, FIRST()
, LAST()
, MIN()
,MAX()
, and PERCENTILE()
.
SELECT CUMULATIVE_SUM(<function>(<field_key>)) FROM_clause WHERE_clause GROUP BY time(<interval>)[,<tag_key>]
例子
##原數(shù)據(jù)
> SELECT "water_level" FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' AND "location" = 'santa_monica'
name: h2o_feet
time water_level
---- -----------
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 2.116
2015-08-18T00:12:00Z 2.028
2015-08-18T00:18:00Z 2.126
2015-08-18T00:24:00Z 2.041
2015-08-18T00:30:00Z 2.051
##轉換后數(shù)據(jù)
> SELECT CUMULATIVE_SUM("water_level") FROM "h2o_feet" WHERE time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' AND "location" = 'santa_monica'
name: h2o_feet
time cumulative_sum
---- --------------
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 4.18
2015-08-18T00:12:00Z 6.208
2015-08-18T00:18:00Z 8.334
2015-08-18T00:24:00Z 10.375
2015-08-18T00:30:00Z 12.426
3.2 DERIVATIVE()
說明:返回系列中單個字段中值的變化率。 InfluxDB計算時間域值之間的差異跟匆,并將這些結果轉換為單位變化率异袄。 單位參數(shù)是可選的,如果未指定玛臂,則默認為1秒(1秒)烤蜕。
基礎語法
SELECT DERIVATIVE(<field_key>, [<unit>]) FROM <measurement_name> [WHERE <stuff>]
單位unit
可以有如下值:
-
u
orμ
微妙(microseconds) -
ms
毫秒(milliseconds) -
s
秒(seconds) -
m
分(minutes) -
h
時(hours) -
d
天(days) -
w
周(weeks)
使用聚合函數(shù)語法
SELECT DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)
例子
#原數(shù)據(jù),兩條數(shù)據(jù)直接間隔6分鐘
> SELECT "water_level" FROM "h2o_feet" WHERE "location" = 'santa_monica' LIMIT 5
name: h2o_feet
--------------
time water_level
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 2.116
2015-08-18T00:12:00Z 2.028
2015-08-18T00:18:00Z 2.126
2015-08-18T00:24:00Z 2.041
2015-08-18T00:30:00Z 2.051
#不指定單位時,默認為每秒變化率迹冤,如第一條記錄(`(2.116-2.064)/(6m/1s)`)
> SELECT DERIVATIVE("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' LIMIT 5
name: h2o_feet
--------------
time derivative
2015-08-18T00:06:00Z 0.00014444444444444457
2015-08-18T00:12:00Z -0.00024444444444444465
2015-08-18T00:18:00Z 0.0002722222222222218
2015-08-18T00:24:00Z -0.000236111111111111
2015-08-18T00:30:00Z 2.777777777777842e-05
#每6分鐘變化率讽营,如第一條(`(2.116-2.064)/(6m/6m)`)
> SELECT DERIVATIVE("water_level",6m) FROM "h2o_feet" WHERE "location" = 'santa_monica' LIMIT 5
name: h2o_feet
--------------
time derivative
2015-08-18T00:06:00Z 0.052000000000000046
2015-08-18T00:12:00Z -0.08800000000000008
2015-08-18T00:18:00Z 0.09799999999999986
2015-08-18T00:24:00Z -0.08499999999999996
2015-08-18T00:30:00Z 0.010000000000000231
#每12分鐘變化率,如第一條(`(2.116-2.064)/(6m/12m)`)
> SELECT DERIVATIVE("water_level",12m) FROM "h2o_feet" WHERE "location" = 'santa_monica' LIMIT 5
name: h2o_feet
--------------
time derivative
2015-08-18T00:06:00Z 0.10400000000000009
2015-08-18T00:12:00Z -0.17600000000000016
2015-08-18T00:18:00Z 0.19599999999999973
2015-08-18T00:24:00Z -0.16999999999999993
2015-08-18T00:30:00Z 0.020000000000000462
#每隔12分鐘最大值
> SELECT MAX("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
time max
2015-08-18T00:00:00Z 2.116
2015-08-18T00:12:00Z 2.126
2015-08-18T00:24:00Z 2.051
#每隔12分鐘變化率,如第一條(`(2.126-2.116)/(12m-12m)`),帶group by 語句時unit默認為time函數(shù)指定的間隔
> SELECT DERIVATIVE(MAX("water_level")) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
time derivative
2015-08-18T00:12:00Z 0.009999999999999787
2015-08-18T00:24:00Z -0.07499999999999973
#每隔18分鐘匯總數(shù)據(jù)
> SELECT SUM("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY time(18m)
name: h2o_feet
--------------
time sum
2015-08-18T00:00:00Z 6.208
2015-08-18T00:18:00Z 6.218
#每隔18分鐘匯總數(shù)據(jù)沒6分鐘變化率泡徙,如第一條(`(6.218-6.208)/(18m/6m)`)
> SELECT DERIVATIVE(SUM("water_level"),6m) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time < '2015-08-18T00:36:00Z' GROUP BY time(18m)
name: h2o_feet
--------------
time derivative
2015-08-18T00:18:00Z 0.0033333333333332624
3.3 DIFFERENCE()
說明:返回單個字段中連續(xù)的時間順序值之間的差異橱鹏。 字段類型必須為int64
或float64
。
基礎語法
SELECT DIFFERENCE(<field_key>) FROM <measurement_name> [WHERE <stuff>]
高級語法
SELECT DIFFERENCE(<function>(<field_key>)) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)
支持的內嵌函數(shù)包括:COUNT()
, MEAN()
, MEDIAN()
, SUM()
, FIRST()
,LAST()
, MIN()
, MAX()
, and PERCENTILE()
堪藐。
例子
#帶處理數(shù)據(jù)
> SELECT "water_level" FROM "h2o_feet" WHERE "location"='santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z'
name: h2o_feet
--------------
time water_level
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 2.116
2015-08-18T00:12:00Z 2.028
2015-08-18T00:18:00Z 2.126
2015-08-18T00:24:00Z 2.041
2015-08-18T00:30:00Z 2.051
2015-08-18T00:36:00Z 2.067
#處理后
> SELECT DIFFERENCE("water_level") FROM "h2o_feet" WHERE "location"='santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z'
name: h2o_feet
--------------
time difference
2015-08-18T00:06:00Z 0.052000000000000046
2015-08-18T00:12:00Z -0.08800000000000008
2015-08-18T00:18:00Z 0.09799999999999986
2015-08-18T00:24:00Z -0.08499999999999996
2015-08-18T00:30:00Z 0.010000000000000231
2015-08-18T00:36:00Z 0.016000000000000014
#分組統(tǒng)計后數(shù)據(jù)
> SELECT MIN("water_level") FROM "h2o_feet" WHERE "location"='santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
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.067
#分組統(tǒng)計處理后數(shù)據(jù)
> SELECT DIFFERENCE(MIN("water_level")) FROM "h2o_feet" WHERE "location"='santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
time difference
2015-08-18T00:12:00Z -0.03600000000000003
2015-08-18T00:24:00Z 0.0129999999999999
2015-08-18T00:36:00Z 0.026000000000000245
3.4 ELAPSED()
說明:返回單個字段中后續(xù)時間戳之間的差異莉兰。 持續(xù)時間(unit
)參數(shù)是可選的檀蹋,如果未指定恬涧,則默認為一納秒。
語法
SELECT ELAPSED(<field_key>, <unit>) FROM <measurement_name> [WHERE <stuff>]
例子
#原數(shù)據(jù)
> SELECT "water_level" FROM "h2o_feet" WHERE "location"='santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z'
name: h2o_feet
--------------
time water_level
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 2.116
2015-08-18T00:12:00Z 2.028
2015-08-18T00:18:00Z 2.126
2015-08-18T00:24:00Z 2.041
#每兩個`water_level`數(shù)據(jù)記錄直接的時間間隔是6分鐘(即360000000000納秒)席噩,elapsed = 6m/1納秒
> SELECT ELAPSED("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:24:00Z'
name: h2o_feet
--------------
time elapsed
2015-08-18T00:06:00Z 360000000000
2015-08-18T00:12:00Z 360000000000
2015-08-18T00:18:00Z 360000000000
2015-08-18T00:24:00Z 360000000000
#每兩個`water_level`數(shù)據(jù)記錄直接的時間間隔是6分鐘模捂,elapsed = 6m/1m
> SELECT ELAPSED("water_level",1m) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:24:00Z'
name: h2o_feet
--------------
time elapsed
2015-08-18T00:06:00Z 6
2015-08-18T00:12:00Z 6
2015-08-18T00:18:00Z 6
2015-08-18T00:24:00Z 6
#每兩個`water_level`數(shù)據(jù)記錄直接的時間間隔是6分鐘寂嘉,elapsed = 6m / 1h。因為1h>6m,所以數(shù)據(jù)為0
> SELECT ELAPSED("water_level",1h) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:24:00Z'
name: h2o_feet
--------------
time elapsed
2015-08-18T00:06:00Z 0
2015-08-18T00:12:00Z 0
2015-08-18T00:18:00Z 0
2015-08-18T00:24:00Z 0
3.5 MOVING_AVERAGE()
說明:返回單個字段的連續(xù)window
個字段值的滑動平均值枫绅。 字段類型必須為int64
或float64
。算法找度娘
基礎語法
SELECT MOVING_AVERAGE(<field_key>,<window>) FROM <measurement_name> [WHERE <stuff>]
高級語法
SELECT MOVING_AVERAGE(<function>(<field_key>),<window>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<time_interval>)
支持的函數(shù)包括:COUNT()
, MEAN()
, MEDIAN()
, SUM()
, FIRST()
,LAST()
, MIN()
, MAX()
, and PERCENTILE()
硼端。
例子
> SELECT "water_level" FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z'
name: h2o_feet
--------------
time water_level
2015-08-18T00:00:00Z 2.064
2015-08-18T00:06:00Z 2.116
2015-08-18T00:12:00Z 2.028
2015-08-18T00:18:00Z 2.126
2015-08-18T00:24:00Z 2.041
2015-08-18T00:30:00Z 2.051
2015-08-18T00:36:00Z 2.067
#第一條(`(2.116+2.064)/2`)并淋,第二條(`(2.028+2.116)/2`)
> SELECT MOVING_AVERAGE("water_level",2) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z'
name: h2o_feet
--------------
time moving_average
2015-08-18T00:06:00Z 2.09
2015-08-18T00:12:00Z 2.072
2015-08-18T00:18:00Z 2.077
2015-08-18T00:24:00Z 2.0835
2015-08-18T00:30:00Z 2.0460000000000003
2015-08-18T00:36:00Z 2.059
#分組統(tǒng)計
> SELECT MIN("water_level") FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
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.067
#分組統(tǒng)計滑動平均值,第一條(`(2.064+2.028)/2`)
> SELECT MOVING_AVERAGE(MIN("water_level"),2) FROM "h2o_feet" WHERE "location" = 'santa_monica' AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:36:00Z' GROUP BY time(12m)
name: h2o_feet
--------------
time moving_average
2015-08-18T00:12:00Z 2.0460000000000003
2015-08-18T00:24:00Z 2.0345000000000004
2015-08-18T00:36:00Z 2.0540000000000003
3.6 NON_NEGATIVE_DERIVATIVE()
說明:返回系列中單個字段中的值的非負變化率县耽。 InfluxDB計算時間域值之間的差異,并將這些結果轉換為單位變化率镣典。 單位參數(shù)是可選的兔毙,如果未指定,則默認為1秒(1秒)兄春。改函數(shù)和DERIVATIVE()函數(shù)類似澎剥,只是返回其正數(shù)結果。
語法
SELECT NON_NEGATIVE_DERIVATIVE(<field_key>, [<unit>]) FROM <measurement_name> [WHERE <stuff>]
SELECT NON_NEGATIVE_DERIVATIVE(AGGREGATION_FUNCTION(<field_key>),[<unit>]) FROM <measurement_name> WHERE <stuff> GROUP BY time(<aggregation_interval>)
4. 預測函數(shù)
4.1 HOLT_WINTERS()
說明:霍爾特指數(shù)平滑法赶舆,該字段必須是int64
或float64
類型哑姚。算法找度娘祭饭。
語法
SELECT HOLT_WINTERS(FUNCTION(<field_key>),<N>,<S>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<interval>)[,<stuff>]
SELECT HOLT_WINTERS_WITH_FIT(FUNCTION(<field_key>),<N>,<S>) FROM <measurement_name> WHERE <stuff> GROUP BY time(<interval>)[,<stuff>]