日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

選擇函數(shù)

更新時(shí)間:

本文檔主要介紹了選擇函數(shù)(Selectors)的語法結(jié)構(gòu)、語法說明以及使用示例。

BOTTOM()

返回最小的N個(gè)field value。

語法

SELECT BOTTOM(<field_key>[,<tag_key(s)>],<N>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

BOTTOM(field_key,N):返回field key對應(yīng)的最小的N個(gè)值。

BOTTOM(field_key,tag_key(s),N):返回tag key的N個(gè)tag value對應(yīng)的field key的最小值。

BOTTOM(field_key,N),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的最小的N個(gè)值,以及相關(guān)的tag和/或field。

BOTTOM():支持?jǐn)?shù)據(jù)類型為int64和float64的field value。

說明

如果最小值有兩個(gè)或多個(gè)相等的值,BOTTOM()返回具有最早時(shí)間戳的field value。當(dāng)BOTTOM()函數(shù)與INTO子句一起使用時(shí),BOTTOM()與其它InfluxQL函數(shù)不同。

示例1:選擇指定field key對應(yīng)的最小的三個(gè)值

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

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的最小的三個(gè)值。

示例2:選擇兩個(gè)tag對應(yīng)的field key的最小值

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

該查詢返回tag key location的兩個(gè)tag value對應(yīng)的field key water_level的最小值。

示例3:選擇指定field key對應(yīng)的最小的四個(gè)值以及相關(guān)的tag和field

SELECT BOTTOM("water_level",4),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  bottom  location      level description
-----------------------------------
2015-08-29T14:24:00Z-0.587  coyote_creek  below 3 feet
2015-08-29T14:30:00Z-0.61   coyote_creek  below 3 feet
2015-08-29T14:36:00Z-0.591  coyote_creek  below 3 feet
2015-08-30T15:18:00Z-0.594  coyote_creek  below 3 feet

該查詢返回field key water_level對應(yīng)的最小的四個(gè)值,以及相關(guān)的tag key location和field key level description的值。

示例4:選擇指定field key對應(yīng)的最小的三個(gè)值并包含多個(gè)子句

SELECT BOTTOM("water_level",3),"location" FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(24m) ORDER BY time DESC

name: h2o_feet
time                  bottom  location
------------------
2015-08-18T00:48:00Z1.991   santa_monica
2015-08-18T00:54:00Z2.054   santa_monica
2015-08-18T00:54:00Z6.982   coyote_creek
2015-08-18T00:24:00Z2.041   santa_monica
2015-08-18T00:30:00Z2.051   santa_monica
2015-08-18T00:42:00Z2.057   santa_monica
2015-08-18T00:00:00Z2.064   santa_monica
2015-08-18T00:06:00Z2.116   santa_monica
2015-08-18T00:12:00Z2.028   santa_monica

該查詢返回在2015-08-18T00:00:00Z2015-08-18T00:54:00Z之間的每個(gè)24分鐘間隔內(nèi),field key water_level對應(yīng)的最小的三個(gè)值,并且以遞減的時(shí)間戳順序返回結(jié)果。

說明

GROUP BY time()子句不會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。

BOTTOM()的常見問題

問題一:BOTTOM()和GROUP BY time()子句同時(shí)使用

對于同時(shí)帶有BOTTOM()GROUP BY time()子句的查詢,將返回每個(gè)GROUP BY time()時(shí)間間隔的指定個(gè)數(shù)的數(shù)據(jù)點(diǎn)。對于大多數(shù)GROUP BY time()查詢,返回的時(shí)間戳表示GROUP BY time()時(shí)間間隔的開始時(shí)間,但是,帶有BOTTOM()函數(shù)的GROUP BY time()查詢則不一樣,它們保留原始數(shù)據(jù)點(diǎn)的時(shí)間戳。

示例以下查詢返回每18分鐘GROUP BY time()間隔對應(yīng)的兩個(gè)數(shù)據(jù)點(diǎn)。請注意,返回的時(shí)間戳是數(shù)據(jù)點(diǎn)的原始時(shí)間戳;它們不會(huì)被強(qiáng)制要求必須匹配GROUP BY time()間隔的開始時(shí)間。

SELECT BOTTOM("water_level",2) FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z' AND "location"='santa_monica' GROUP BY time(18m)

name: h2o_feet
time                   bottom
----------
                           __
2015-08-18T00:00:00Z2.064|
2015-08-18T00:12:00Z2.028|<-------Smallest points for the first time interval
--
                           __
2015-08-18T00:24:00Z2.041|
2015-08-18T00:30:00Z2.051|<-------Smallest points for the second time interval
--

問題二:BOTTOM()和具有少于N個(gè)tag value的tag key

使用語法SELECT BOTTOM(<field_key>,<tag_key>,<N>)的查詢可以返回比預(yù)期少的數(shù)據(jù)點(diǎn)。如果tag key有X個(gè)tag value,但是查詢指定的是N個(gè)tag value,如果X小于N,那么查詢將返回X個(gè)數(shù)據(jù)點(diǎn)。

示例以下查詢請求的是tag key location的三個(gè)tag value對于的water_level的最小值。因?yàn)閠ag key location只有兩個(gè)tag value(santa_monicacoyote_creek),所以該查詢返回兩個(gè)數(shù)據(jù)點(diǎn)而不是三個(gè)。

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

問題三:BOTTOM()、tag和INTO子句

當(dāng)使用INTO子句但沒有使用GROUP BY tag子句時(shí),大多數(shù)InfluxQL函數(shù)將原始數(shù)據(jù)中的tag轉(zhuǎn)換為新寫入數(shù)據(jù)中的field。這種行為同樣適用于BOTTOM()函數(shù)除非BOTTOM()中包含tag key作為參數(shù):BOTTOM(field_key,tag_key(s),N)。在這些情況下,系統(tǒng)會(huì)將指定的tag保留為新寫入數(shù)據(jù)中的tag。

示例:下面代碼塊中的第一個(gè)查詢返回tag key location的兩個(gè)tag value對應(yīng)的field key water_level的最小值,并且,它這些結(jié)果寫入measurement bottom_water_levels中。第二個(gè)查詢展示了TSDB For InfluxDB?將tag location保留為measurement bottom_water_levels中的tag。

> SELECT BOTTOM("water_level","location",2) INTO "bottom_water_levels" FROM "h2o_feet"

name: result
time                 written
-----------
1970-01-01T00:00:00Z2

> SHOW TAG KEYS FROM "bottom_water_levels"

name: bottom_water_levels
tagKey
------
location

FIRST()

返回具有最早時(shí)間戳的field value。

語法

SELECT FIRST(<field_key>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

FIRST(field_key):返回field key對應(yīng)的具有最早時(shí)間戳的field value。

FIRST(/regular_expression/):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的具有最早時(shí)間戳的field value。

FIRST(*):返回在measurement中每個(gè)field key對應(yīng)的具有最早時(shí)間戳的field value。

FIRST(field_key),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的具有最早時(shí)間戳的field value,以及相關(guān)的tag和/或field。

FIRST():支持所有數(shù)據(jù)類型的field value。

示例1:選擇指定field key對應(yīng)的具有最早時(shí)間戳的field value

SELECT FIRST("level description") FROM "h2o_feet"

name: h2o_feet
time                   first
---------
2015-08-18T00:00:00Z   between 6 and 9 feet

該查詢返回measurement h2o_feet中field key level description對應(yīng)的具有最早時(shí)間戳的field value。

示例2:選擇measurement中每個(gè)field key對應(yīng)的具有最早時(shí)間戳的field value

SELECT FIRST(*) FROM "h2o_feet"

name: h2o_feet
time                   first_level description   first_water_level
--------------------------------------------
1970-01-01T00:00:00Z   between 6 and 9 feet      8.12

該查詢返回measurement h2o_feet中每個(gè)field key對應(yīng)的具有最早時(shí)間戳的field value。measurement h2o_feet中有兩個(gè)field key:level descriptionwater_level。

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的具有最早時(shí)間戳的field value

SELECT FIRST(/level/) FROM "h2o_feet"

name: h2o_feet
time                   first_level description   first_water_level
--------------------------------------------
1970-01-01T00:00:00Z   between 6 and 9 feet      8.12

該查詢返回measurement h2o_feet中每個(gè)包含單詞level的field key對應(yīng)的具有最早時(shí)間戳的field value。

示例4:選擇指定field key對應(yīng)的具有最早時(shí)間戳的field value以及相關(guān)的tag和field

SELECT FIRST("level description"),"location","water_level" FROM "h2o_feet"

name: h2o_feet
time                  first                 location      water_level
----------------------------
2015-08-18T00:00:00Z  between 6 and 9 feet  coyote_creek  8.12

該查詢返回measurement h2o_feet中field key level description對應(yīng)的具有最早時(shí)間戳的field value,以及相關(guān)的tag key location和field key water_level的值。

示例5:選擇指定field key對應(yīng)的具有最早時(shí)間戳的field value并包含多個(gè)子句

SELECT FIRST("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 4 SLIMIT 1

name: h2o_feet
tags: location=coyote_creek
time                   first
---------
2015-08-17T23:48:00Z9.01
2015-08-18T00:00:00Z8.12
2015-08-18T00:12:00Z7.887
2015-08-18T00:24:00Z7.635

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的具有最早時(shí)間戳的field value,它涵蓋的時(shí)間范圍在2015-08-17T23:48:00Z2015-08-18T00:54:00Z之間,并將查詢結(jié)果按12分鐘的時(shí)間間隔和每個(gè)tag進(jìn)行分組,同時(shí),該查詢用9.01填充沒有數(shù)據(jù)的時(shí)間間隔,并將返回的數(shù)據(jù)點(diǎn)個(gè)數(shù)和序列個(gè)數(shù)分別限制為4和1。

說明

GROUP BY time()子句會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。查詢結(jié)果中的時(shí)間戳表示每12分鐘時(shí)間間隔的開始時(shí)間,其中,第一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-17T23:48:00Z2015-08-18T00:00:00Z之間,最后一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-18T00:24:00Z2015-08-18T00:36:00Z之間。

LAST()

返回具有最新時(shí)間戳的field value。

語法

SELECT LAST(<field_key>)[,<tag_key(s)>|<field_keys(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

LAST(field_key):返回field key對應(yīng)的具有最新時(shí)間戳的field value。

LAST(/regular_expression/):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的具有最新時(shí)間戳的field value。

LAST(*):返回在measurement中每個(gè)field key對應(yīng)的具有最新時(shí)間戳的field value。

LAST(field_key),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的具有最新時(shí)間戳的field value,以及相關(guān)的tag和/或field。

LAST():支持所有數(shù)據(jù)類型的field value。

示例1:選擇指定field key對應(yīng)的具有最新時(shí)間戳的field value

SELECT LAST("level description") FROM "h2o_feet"

name: h2o_feet
time                   last
--------
2015-09-18T21:42:00Z   between 3 and 6 feet

該查詢返回measurement h2o_feet中field key level description對應(yīng)的具有最新時(shí)間戳的field value。

示例2:選擇measurement中每個(gè)field key對應(yīng)的具有最新時(shí)間戳的field value

SELECT LAST(*) FROM "h2o_feet"

name: h2o_feet
time                   last_level description   last_water_level
--------------------------------------------
2015-09-18T21:42:00Z   between 3 and 6 feet      4.938

該查詢返回measurement h2o_feet中每個(gè)field key對應(yīng)的具有最新時(shí)間戳的field value。measurement h2o_feet中有兩個(gè)field key:level descriptionwater_level

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的具有最新時(shí)間戳的field value

SELECT LAST(/level/) FROM "h2o_feet"

name: h2o_feet
time                   last_level description   last_water_level
--------------------------------------------
2015-09-18T21:42:00Z   between 3 and 6 feet      4.938

該查詢返回measurement h2o_feet中每個(gè)包含單詞level的field key對應(yīng)的具有最新時(shí)間戳的field value。

示例4:選擇指定field key對應(yīng)的具有最新時(shí)間戳的field value以及相關(guān)的tag和field

SELECT LAST("level description"),"location","water_level" FROM "h2o_feet"

name: h2o_feet
time                  last                  location      water_level
---------------------------
2015-09-18T21:42:00Z  between 3 and 6 feet  santa_monica  4.938

該查詢返回measurement h2o_feet中field key level description對應(yīng)的具有最新時(shí)間戳的field value,以及相關(guān)的tag key location和field key water_level的值。

示例5:選擇指定field key對應(yīng)的具有最新時(shí)間戳的field value并包含多個(gè)子句

SELECT LAST("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 4 SLIMIT 1

name: h2o_feet
tags: location=coyote_creek
time                   last
--------
2015-08-17T23:48:00Z9.01
2015-08-18T00:00:00Z8.005
2015-08-18T00:12:00Z7.762
2015-08-18T00:24:00Z7.5

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的具有最新時(shí)間戳的field value,它涵蓋的時(shí)間范圍在2015-08-17T23:48:00Z2015-08-18T00:54:00Z之間,并將查詢結(jié)果按12分鐘的時(shí)間間隔和每個(gè)tag進(jìn)行分組,同時(shí),該查詢用9.01填充沒有數(shù)據(jù)的時(shí)間間隔,并將返回的數(shù)據(jù)點(diǎn)個(gè)數(shù)和序列個(gè)數(shù)分別限制為4和1。

說明

GROUP BY time()子句會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。查詢結(jié)果中的時(shí)間戳表示每12分鐘時(shí)間間隔的開始時(shí)間,其中,第一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-17T23:48:00Z2015-08-18T00:00:00Z之間,最后一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-18T00:24:00Z2015-08-18T00:36:00Z之間。

MAX()

返回field value的最大值。

語法

SELECT MAX(<field_key>)[,<tag_key(s)>|<field__key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

MAX(field_key):返回field key對應(yīng)的field value的最大值。

MAX(/regular_expression/):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的field value的最大值。

MAX(*):返回在measurement中每個(gè)field key對應(yīng)的field value的最大值。

MAX(field_key),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的field value的最大值,以及相關(guān)的tag和/或field。

MAX():支持?jǐn)?shù)據(jù)類型為int64和float64的field value。

示例1:選擇指定field key對應(yīng)的field value的最大值

SELECT MAX("water_level") FROM "h2o_feet"

name: h2o_feet
time                   max
-------
2015-08-29T07:24:00Z9.964

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最大值。

示例2:選擇measurement中每個(gè)field key對應(yīng)的field value的最大值

SELECT MAX(*) FROM "h2o_feet"

name: h2o_feet
time                   max_water_level
-------------------
2015-08-29T07:24:00Z9.964

該查詢返回measurement h2o_feet中每個(gè)存儲數(shù)值的field key對應(yīng)的field value的最大值。measurement h2o_feet中只有一個(gè)數(shù)值類型的field:water_level

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的field value的最大值

SELECT MAX(/water/) FROM "h2o_feet"

name: h2o_feet
time                   max_water_level
-------------------
2015-08-29T07:24:00Z9.964

該查詢返回measurement h2o_feet中每個(gè)存儲數(shù)值并包含單詞water的field key對應(yīng)的field value的最大值。

示例4:選擇指定field key對應(yīng)的field value的最大值以及相關(guān)的tag和field

SELECT MAX("water_level"),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  max    location      level description
--------------------------------
2015-08-29T07:24:00Z9.964  coyote_creek  at or greater than 9 feet

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最大值,以及相關(guān)的tag key location和field key level description的值。

示例5:選擇指定field key對應(yīng)的field value的最大值并包含多個(gè)子句

SELECT MAX("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 4 SLIMIT 1

name: h2o_feet
tags: location=coyote_creek
time                   max
-------
2015-08-17T23:48:00Z9.01
2015-08-18T00:00:00Z8.12
2015-08-18T00:12:00Z7.887
2015-08-18T00:24:00Z7.635

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最大值,它涵蓋的時(shí)間范圍在2015-08-17T23:48:00Z2015-08-18T00:54:00Z之間,并將查詢結(jié)果按12分鐘的時(shí)間間隔和每個(gè)tag進(jìn)行分組,同時(shí),該查詢用9.01填充沒有數(shù)據(jù)的時(shí)間間隔,并將返回的數(shù)據(jù)點(diǎn)個(gè)數(shù)和序列個(gè)數(shù)分別限制為4和1。

說明

GROUP BY time()子句會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。查詢結(jié)果中的時(shí)間戳表示每12分鐘時(shí)間間隔的開始時(shí)間,其中,第一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-17T23:48:00Z2015-08-18T00:00:00Z之間,最后一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-18T00:24:00Z2015-08-18T00:36:00Z之間。

MIN()

返回field value的最小值。

語法

SELECT MIN(<field_key>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

MIN(field_key):返回field key對應(yīng)的field value的最小值。

MIN(/regular_expression/):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的field value的最小值。

MIN(*):返回在measurement中每個(gè)field key對應(yīng)的field value的最小值。

MIN(field_key),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的field value的最小值,以及相關(guān)的tag和/或field。

MIN():支持?jǐn)?shù)據(jù)類型為int64和float64的field value。

示例1:選擇指定field key對應(yīng)的field value的最小值

SELECT MIN("water_level") FROM "h2o_feet"

name: h2o_feet
time                   min
-------
2015-08-29T14:30:00Z-0.61

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最小值。

示例2:選擇measurement中每個(gè)field key對應(yīng)的field value的最小值

SELECT MIN(*) FROM "h2o_feet"

name: h2o_feet
time                   min_water_level
-------------------
2015-08-29T14:30:00Z-0.61

該查詢返回measurement h2o_feet中每個(gè)存儲數(shù)值的field key對應(yīng)的field value的最小值。measurement h2o_feet中只有一個(gè)數(shù)值類型的field:water_level

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的field value的最小值

SELECT MIN(/water/) FROM "h2o_feet"

name: h2o_feet
time                   min_water_level
-------------------
2015-08-29T14:30:00Z-0.61

該查詢返回measurement h2o_feet中每個(gè)存儲數(shù)值并包含單詞water的field key對應(yīng)的field value的最小值。

示例4:選擇指定field key對應(yīng)的field value的最小值以及相關(guān)的tag和field

SELECT MIN("water_level"),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  min    location      level description
--------------------------------
2015-08-29T14:30:00Z-0.61  coyote_creek  below 3 feet

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最小值,以及相關(guān)的tag key location和field key level description的值。

示例5:選擇指定field key對應(yīng)的field value的最小值并包含多個(gè)子句

SELECT MIN("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 4 SLIMIT 1

name: h2o_feet
tags: location=coyote_creek
time                   min
-------
2015-08-17T23:48:00Z9.01
2015-08-18T00:00:00Z8.005
2015-08-18T00:12:00Z7.762
2015-08-18T00:24:00Z7.5

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的field value的最小值,它涵蓋的時(shí)間范圍在2015-08-17T23:48:00Z2015-08-18T00:54:00Z之間,并將查詢結(jié)果按12分鐘的時(shí)間間隔和每個(gè)tag進(jìn)行分組,同時(shí),該查詢用9.01填充沒有數(shù)據(jù)的時(shí)間間隔,并將返回的數(shù)據(jù)點(diǎn)個(gè)數(shù)和序列個(gè)數(shù)分別限制為4和1。

說明

GROUP BY time()子句會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。查詢結(jié)果中的時(shí)間戳表示每12分鐘時(shí)間間隔的開始時(shí)間,其中,第一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-17T23:48:00Z2015-08-18T00:00:00Z之間,最后一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-18T00:24:00Z2015-08-18T00:36:00Z之間。

PERCENTILE()

返回第N個(gè)百分位數(shù)的field value。

語法

SELECT PERCENTILE(<field_key>,<N>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

PERCENTILE(field_key,N):返回指定field key對應(yīng)的第N個(gè)百分位數(shù)的field value。

PERCENTILE(/regular_expression/,N):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的第N個(gè)百分位數(shù)的field value。

PERCENTILE(*,N):返回在measurement中每個(gè)field key對應(yīng)的第N個(gè)百分位數(shù)的field value。

PERCENTILE(field_key,N),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的第N個(gè)百分位數(shù)的field value,以及相關(guān)的tag和/或field。N必須是0到100之間的整數(shù)或浮點(diǎn)數(shù)。PERCENTILE()支持?jǐn)?shù)據(jù)類型為int64和float64的field value。

示例1:選擇指定field key對應(yīng)的第五個(gè)百分位數(shù)的field value

SELECT PERCENTILE("water_level",5) FROM "h2o_feet"

name: h2o_feet
time                   percentile
--------------
2015-08-31T03:42:00Z1.122

該查詢返回的field value大于measurement h2o_feet中field key water_level對應(yīng)的所有field value中的百分之五。

示例2:選擇measurement中每個(gè)field key對應(yīng)的第五個(gè)百分位數(shù)的field value

SELECT PERCENTILE(*,5) FROM "h2o_feet"

name: h2o_feet
time                   percentile_water_level
--------------------------
2015-08-31T03:42:00Z1.122

該查詢返回的field value大于measurement h2o_feet中每個(gè)存儲數(shù)值的field key對應(yīng)的所有field value中的百分之五。measurement h2o_feet中只有一個(gè)數(shù)值類型的field:water_level

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的第五個(gè)百分位數(shù)的field value

SELECT PERCENTILE(/water/,5) FROM "h2o_feet"

name: h2o_feet
time                   percentile_water_level
--------------------------
2015-08-31T03:42:00Z1.122

該查詢返回的field value大于measurement h2o_feet中每個(gè)存儲數(shù)值并包含單詞water的field key對應(yīng)的所有field value中的百分之五。

示例4:選擇指定field key對應(yīng)的第五個(gè)百分位數(shù)的field value以及相關(guān)的tag和field

SELECT PERCENTILE("water_level",5),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  percentile  location      level description
---------------------------------------
2015-08-31T03:42:00Z1.122       coyote_creek  below 3 feet

該查詢返回的field value大于measurement h2o_feet中field key water_level對應(yīng)的所有field value中的百分之五,以及相關(guān)的tag key location和field key level description的值。

示例五:選擇指定field key對應(yīng)的第20個(gè)百分位數(shù)的field value并包含多個(gè)子句

SELECT PERCENTILE("water_level",20) FROM "h2o_feet" WHERE time >='2015-08-17T23:48:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(24m) fill(15) LIMIT 2

name: h2o_feet
time                   percentile
--------------
2015-08-17T23:36:00Z15
2015-08-18T00:00:00Z2.064

該查詢返回的field value大于measurement h2o_feet中field key water_level對應(yīng)的所有field value中的百分之二十,它涵蓋的時(shí)間范圍在2015-08-17T23:48:00Z2015-08-18T00:54:00Z之間,并將查詢結(jié)果按24分鐘的時(shí)間間隔進(jìn)行分組,同時(shí),該查詢用15填充沒有數(shù)據(jù)的時(shí)間間隔,并將返回的數(shù)據(jù)點(diǎn)個(gè)數(shù)限制為2。

說明

GROUP BY time()子句會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。查詢結(jié)果中的時(shí)間戳表示每24分鐘時(shí)間間隔的開始時(shí)間,其中,第一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-17T23:36:00Z2015-08-18T00:00:00Z之間,最后一個(gè)數(shù)據(jù)點(diǎn)涵蓋的時(shí)間間隔在2015-08-18T00:00:00Z2015-08-18T00:24:00Z之間。

PERCENTILE()的常見問題

問題一:PERCENTILE()與其它InfluxQL函數(shù)進(jìn)行對比

  • PERCENTILE(<field_key>,100)相當(dāng)于MAX(<field_key>)。

  • PERCENTILE(<field_key>, 50)近似于MEDIAN(<field_key>),除非field key包含的field value有偶數(shù)個(gè),那么這時(shí)候MEDIAN()將返回兩個(gè)中間值的平均數(shù)。

  • PERCENTILE(<field_key>,0)不等于MIN(<field_key>),PERCENTILE(<field_key>,0)會(huì)返回null

SAMPLE()

返回包含N個(gè)field value的隨機(jī)樣本。SAMPLE()使用reservoir sampling來生成隨機(jī)數(shù)據(jù)點(diǎn)。

語法

SELECT SAMPLE(<field_key>,<N>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

SAMPLE(field_key,N):返回指定field key對應(yīng)的N個(gè)隨機(jī)選擇的field value。

SAMPLE(/regular_expression/,N):返回與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的N個(gè)隨機(jī)選擇的field value。

SAMPLE(*,N):返回在measurement中每個(gè)field key對應(yīng)的N個(gè)隨機(jī)選擇的field value。

SAMPLE(field_key,N),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的N個(gè)隨機(jī)選擇的field value,以及相關(guān)的tag和/或field。N必須是整數(shù)。SAMPLE()支持所有數(shù)據(jù)類型的field value。

示例1:選擇指定field key對應(yīng)的field value的隨機(jī)樣本

SELECT SAMPLE("water_level",2) FROM "h2o_feet"

name: h2o_feet
time                   sample
----------
2015-09-09T21:48:00Z5.659
2015-09-18T10:00:00Z6.939

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的兩個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn)。

示例2:選擇measurement中每個(gè)field key對應(yīng)的field value的隨機(jī)樣本

SELECT SAMPLE(*,2) FROM "h2o_feet"

name: h2o_feet
time                   sample_level description   sample_water_level
----------------------------------------------
2015-08-25T17:06:00Z3.284
2015-09-03T04:30:00Z   below 3 feet
2015-09-03T20:06:00Z   between 3 and 6 feet
2015-09-08T21:54:00Z3.412

該查詢返回measurement h2o_feet中每個(gè)field key對應(yīng)的兩個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn)。measurement h2o_feet中有兩個(gè)field key:level descriptionwater_level

示例3:選擇與正則表達(dá)式匹配的每個(gè)field key對應(yīng)的field value的隨機(jī)樣本

SELECT SAMPLE(/level/,2) FROM "h2o_feet"

name: h2o_feet
time                   sample_level description   sample_water_level
----------------------------------------------
2015-08-30T05:54:00Z   between 6 and 9 feet
2015-09-07T01:18:00Z7.854
2015-09-09T20:30:00Z7.32
2015-09-13T19:18:00Z   between 3 and 6 feet

該查詢返回measurement h2o_feet中每個(gè)包含單詞level的field key對應(yīng)的兩個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn)。

示例4:選擇指定field key對應(yīng)的field value的隨機(jī)樣本以及相關(guān)的tag和field

SELECT SAMPLE("water_level",2),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  sample  location      level description
-----------------------------------
2015-08-29T10:54:00Z5.689   coyote_creek  between 3 and 6 feet
2015-09-08T15:48:00Z6.391   coyote_creek  between 6 and 9 feet

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的兩個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn),以及相關(guān)的tag key location和field key level description的值。

示例5:選擇指定field key對應(yīng)field value的隨機(jī)樣本并包含多個(gè)子句

SELECT SAMPLE("water_level",1) FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z' AND "location"='santa_monica' GROUP BY time(18m)

name: h2o_feet
time                   sample
----------
2015-08-18T00:12:00Z2.028
2015-08-18T00:30:00Z2.051

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的一個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn),它涵蓋的時(shí)間范圍在2015-08-18T00:00:00Z2015-08-18T00:30:00Z之間,并將查詢結(jié)果按18分鐘的時(shí)間間隔進(jìn)行分組。

說明

GROUP BY time()子句不會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。

SAMPLE()的常見問題

問題一:SAMPLE()和GROUP BY time()子句同時(shí)使用

對于同時(shí)帶有SAMPLE()GROUP BY time()子句的查詢,將返回每個(gè)GROUP BY time()時(shí)間間隔的指定個(gè)數(shù)(N)的數(shù)據(jù)點(diǎn)。對于大多數(shù)GROUP BY time()查詢,返回的時(shí)間戳表示GROUP BY time()時(shí)間間隔的開始時(shí)間,但是,帶有SAMPLE()函數(shù)的GROUP BY time()查詢則不一樣,它們保留原始數(shù)據(jù)點(diǎn)的時(shí)間戳。

示例:以下查詢返回每18分鐘GROUP BY time()間隔對應(yīng)的兩個(gè)隨機(jī)選擇的數(shù)據(jù)點(diǎn)。請注意,返回的時(shí)間戳是數(shù)據(jù)點(diǎn)的原始時(shí)間戳;它們不會(huì)被強(qiáng)制要求必須匹配GROUP BY time()間隔的開始時(shí)間。

SELECT SAMPLE("water_level",2) FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z' AND "location"='santa_monica' GROUP BY time(18m)

name: h2o_feet
time                   sample
----------
                           __
2015-08-18T00:06:00Z2.116|
2015-08-18T00:12:00Z2.028|<-------Randomly-selected points for the first time interval
--
                           __
2015-08-18T00:18:00Z2.126|
2015-08-18T00:30:00Z2.051|<-------Randomly-selected points for the second time interval
--

TOP()

返回最大的N個(gè)field value。

語法

SELECT TOP(<field_key>[,<tag_key(s)>],<N>)[,<tag_key(s)>|<field_key(s)>][INTO_clause] FROM_clause [WHERE_clause][GROUP_BY_clause][ORDER_BY_clause][LIMIT_clause][OFFSET_clause][SLIMIT_clause][SOFFSET_clause]

語法說明

TOP(field_key,N):返回field key對應(yīng)的最大的N個(gè)值。

TOP(field_key,tag_key(s),N):返回tag key的N個(gè)tag value對應(yīng)的field key的最大值。

TOP(field_key,N),tag_key(s),field_key(s):返回括號中的field key對應(yīng)的最大的N個(gè)值,以及相關(guān)的tag和/或field。

TOP():支持?jǐn)?shù)據(jù)類型為int64和float64的field value。

說明

如果最大值有兩個(gè)或多個(gè)并且它們之間有關(guān)聯(lián),TOP()返回具有最早時(shí)間戳的field value。 當(dāng)TOP()函數(shù)與INTO子句一起使用時(shí),TOP()與其它InfluxQL函數(shù)不同。

示例1:選擇指定field key對應(yīng)的最大的三個(gè)值

SELECT TOP("water_level",3) FROM "h2o_feet"

name: h2o_feet
time                   top
-------
2015-08-29T07:18:00Z9.957
2015-08-29T07:24:00Z9.964
2015-08-29T07:30:00Z9.954

該查詢返回measurement h2o_feet中field key water_level對應(yīng)的最大的三個(gè)值。

示例2:選擇兩個(gè)tag對應(yīng)的field key的最大值

SELECT TOP("water_level","location",2) FROM "h2o_feet"

name: h2o_feet
time                   top     location
---------------
2015-08-29T03:54:00Z7.205   santa_monica
2015-08-29T07:24:00Z9.964   coyote_creek

該查詢返回tag key location的兩個(gè)tag value對應(yīng)的field key water_level的最大值。

示例3:選擇指定field key對應(yīng)的最大的四個(gè)值以及相關(guān)的tag和field

SELECT TOP("water_level",4),"location","level description" FROM "h2o_feet"

name: h2o_feet
time                  top    location      level description
--------------------------------
2015-08-29T07:18:00Z9.957  coyote_creek  at or greater than 9 feet
2015-08-29T07:24:00Z9.964  coyote_creek  at or greater than 9 feet
2015-08-29T07:30:00Z9.954  coyote_creek  at or greater than 9 feet
2015-08-29T07:36:00Z9.941  coyote_creek  at or greater than 9 feet

該查詢返回field key water_level對應(yīng)的最大的四個(gè)值,以及相關(guān)的tag key location和field key level description的值。

示例4:選擇指定field key對應(yīng)的最大的三個(gè)值并包含多個(gè)子句

SELECT TOP("water_level",3),"location" FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:54:00Z' GROUP BY time(24m) ORDER BY time DESC

name: h2o_feet
time                  top    location
---------------
2015-08-18T00:48:00Z7.11   coyote_creek
2015-08-18T00:54:00Z6.982  coyote_creek
2015-08-18T00:54:00Z2.054  santa_monica
2015-08-18T00:24:00Z7.635  coyote_creek
2015-08-18T00:30:00Z7.5    coyote_creek
2015-08-18T00:36:00Z7.372  coyote_creek
2015-08-18T00:00:00Z8.12   coyote_creek
2015-08-18T00:06:00Z8.005  coyote_creek
2015-08-18T00:12:00Z7.887  coyote_creek

該查詢返回在2015-08-18T00:00:00Z2015-08-18T00:54:00Z之間的每個(gè)24分鐘間隔內(nèi),field key water_level對應(yīng)的最大的三個(gè)值,并且以遞減的時(shí)間戳順序返回結(jié)果。

說明

GROUP BY time()子句不會(huì)覆蓋數(shù)據(jù)點(diǎn)的原始時(shí)間戳。

TOP()的常見問題

問題1:TOP()和GROUP BY time()子句同時(shí)使用

對于同時(shí)帶有TOP()GROUP BY time()子句的查詢,將返回每個(gè)GROUP BY time()時(shí)間間隔的指定個(gè)數(shù)的數(shù)據(jù)點(diǎn)。對于大多數(shù)GROUP BY time()查詢,返回的時(shí)間戳表示GROUP BY time()時(shí)間間隔的開始時(shí)間,但是,帶有TOP()函數(shù)的GROUP BY time()查詢則不一樣,它們保留原始數(shù)據(jù)點(diǎn)的時(shí)間戳。

示例:以下查詢返回每18分鐘GROUP BY time()間隔對應(yīng)的兩個(gè)數(shù)據(jù)點(diǎn)。請注意,返回的時(shí)間戳是數(shù)據(jù)點(diǎn)的原始時(shí)間戳;它們不會(huì)被強(qiáng)制要求必須匹配GROUP BY time()間隔的開始時(shí)間。

SELECT TOP("water_level",2) FROM "h2o_feet" WHERE time >='2015-08-18T00:00:00Z' AND time <='2015-08-18T00:30:00Z' AND "location"='santa_monica' GROUP BY time(18m)

name: h2o_feet
time                   top
----------
                           __
2015-08-18T00:00:00Z2.064|
2015-08-18T00:06:00Z2.116|<-------Greatest points for the first time interval
--
                           __
2015-08-18T00:18:00Z2.126|
2015-08-18T00:30:00Z2.051|<-------Greatest points for the second time interval
--

問題2:TOP()和具有少于N個(gè)tag value的tag key

使用語法SELECT TOP(<field_key>,<tag_key>,<N>)的查詢可以返回比預(yù)期少的數(shù)據(jù)點(diǎn)。如果tag key有X個(gè)tag value,但是查詢指定的是N個(gè)tag value,如果X小于N,那么查詢將返回X個(gè)數(shù)據(jù)點(diǎn)。

示例:以下查詢請求的是tag key location的三個(gè)tag value對于的water_level的最大值。因?yàn)閠ag key location只有兩個(gè)tag value(santa_monicacoyote_creek),所以該查詢返回兩個(gè)數(shù)據(jù)點(diǎn)而不是三個(gè)。

> SELECT TOP("water_level","location",3) FROM "h2o_feet"

name: h2o_feet
time                  top    location
---------------
2015-08-29T03:54:00Z7.205  santa_monica
2015-08-29T07:24:00Z9.964  coyote_creek

問題3:TOP()、tag和INTO子句

當(dāng)使用INTO子句但沒有使用GROUP BY tag子句時(shí),大多數(shù)InfluxQL函數(shù)將原始數(shù)據(jù)中的tag轉(zhuǎn)換為新寫入數(shù)據(jù)中的field。這種行為同樣適用于TOP()函數(shù),除非TOP()中包含tag key作為參數(shù):TOP(field_key,tag_key(s),N)。在這些情況下,系統(tǒng)會(huì)將指定的tag保留為新寫入數(shù)據(jù)中的tag。

示例:下面代碼塊中的第一個(gè)查詢返回tag key location的兩個(gè)tag value對應(yīng)的field key water_level的最大值,并且,它這些結(jié)果寫入measurement top_water_levels中。第二個(gè)查詢展示了TSDB For InfluxDB?將tag location保留為measurement top_water_levels中的tag。

SELECT TOP("water_level","location",2) INTO "top_water_levels" FROM "h2o_feet"

name: result
time                 written
-----------
1970-01-01T00:00:00Z2

> SHOW TAG KEYS FROM "top_water_levels"

name: top_water_levels
tagKey
------
location