本文翻譯自官網,官網地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) LIMIT和SLIMIT分別用於限制InfluxDB中每次查詢時返回的points或series的數目。 一、LIMIT ...
本文翻譯自官網,官網地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/)
LIMIT和SLIMIT分別用於限制InfluxDB中每次查詢時返回的points或series的數目。
一、LIMIT子句
LIMIT
語法:
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause]
[GROUP_BY_clause] [ORDER_BY_clause]
LIMIT <N>
LIMIT示例sql
二、SLIMIT子句
SLIMIT
有一個持續的問題是,需要SLIMIT查詢中包含group by*。請註意,SLIMIT子句必須按上述語法中列出的順序出現。
SLIMIT示例sql
示例1
上面sql查詢h2o_feet表中1個series的所有point的water_level。- 示例2
SELECT MEAN("water_level") FROM "h2o_feet"
WHERE time >= '2015-08-18T00:00:00Z'
AND time <= '2015-08-18T00:42:00Z'
GROUP BY *,time(12m)
SLIMIT 1
查詢結果:
三、LIMIT and SLIMIT
當LIMIT
語法:
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause]
GROUP BY *[,time(<time_interval>)] [ORDER_BY_clause]
LIMIT <N1> SLIMIT <N2>
- N1指定了從measurement中查詢的points的數量。
- N2指定了從measurement中查詢的series的數量。
存在一個持續的問題是,在使用LIMIT和SLIMIT來進行查詢時,sql中必須包含group by*。註意,LIMIT和SLIMIT子句必須按上述語法中列出的順序出現。
LIMIT和SLIMIT示例sql
示例1
- 示例2
Sql
SELECT MEAN("water_level") FROM "h2o_feet"
WHERE time >= '2015-08-18T00:00:00Z'
AND time <= '2015-08-18T00:42:00Z'
GROUP BY *,time(12m)
LIMIT 3 SLIMIT 2
查詢結果:
由查詢結果可知,查詢返回2個series,每個series返回3個points。為了證明LIMIT 3 SLIMIT 2指的是返回前2個series中,每個series的前3個points。我們執行下麵的sql,看每個series有多少個point
SELECT MEAN("water_level") FROM "h2o_feet"
WHERE time >= '2015-08-18T00:00:00Z'
AND time <= '2015-08-18T00:42:00Z'
GROUP BY *,time(12m)
SLIMIT 2
查詢結果:
可見每個series有4個point。