LIMIT及SLIMIT子句
LIMIT
和SLIMIT
分别限制每个查询返回的数据点个数和序列个数。
LIMIT子句
LIMIT <N>
返回指定measurement中的前N
个数据点。
语法
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause] LIMIT <N>
语法描述
N
表示从指定measurement中返回的数据点个数。如果N
大于measurement中所有数据点的个数,TSDB For InfluxDB®将返回该measurement中的所有数据点。请注意,LIMIT
子句必须按照上述语法中的顺序使用。
示例
限制返回的数据点个数
> SELECT "water_level","location" FROM "h2o_feet" LIMIT 3
name: h2o_feet
time water_level location
---- ----------- --------
2015-08-18T00:00:00Z 8.12 coyote_creek
2015-08-18T00:00:00Z 2.064 santa_monica
2015-08-18T00:06:00Z 8.005 coyote_creek
该查询从measurement h2o_feet
中返回三个最早的数据点(由时间戳决定)。
限制返回的数据点个数并且包含GROUP BY
子句
> 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 2
name: h2o_feet
tags: location=coyote_creek
time mean
---- ----
2015-08-18T00:00:00Z 8.0625
2015-08-18T00:12:00Z 7.8245
name: h2o_feet
tags: location=santa_monica
time mean
---- ----
2015-08-18T00:00:00Z 2.09
2015-08-18T00:12:00Z 2.077
该查询使用了一个InfluxQL函数和一个GROUP BY
子句,计算每个tag以及查询时间范围内每12分钟的water_level
的平均值。LIMIT 2
表示该查询请求的是两个最早的12分钟间隔的平均值(由时间戳决定)。
请注意,如果以上查询语句中没有使用LIMIT 2
,那么每个序列会返回四个数据点:在查询的时间范围内每隔十二分钟有一个数据点。
SLIMIT子句
SLIMIT <N>
返回指定measurement的前N
个序列中的每一个数据点。
语法
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] GROUP BY *[,time(<time_interval>)] [ORDER_BY_clause] SLIMIT <N>
语法描述
N
表示从指定measurement中返回的序列个数。如果N
大于measurement中所有序列的个数,TSDB For InfluxDB®将返回该measurement中的所有序列。请注意,SLIMIT
子句必须按照上述语法中的顺序使用。
示例
限制返回的序列个数
> SELECT "water_level" FROM "h2o_feet" GROUP BY * SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time water_level
---- -----
2015-08-18T00:00:00Z 8.12
2015-08-18T00:06:00Z 8.005
2015-08-18T00:12:00Z 7.887
[...]
2015-09-18T16:12:00Z 3.402
2015-09-18T16:18:00Z 3.314
2015-09-18T16:24:00Z 3.235
该查询从measurement h2o_feet
的一个序列中返回所有water_level
数据点。
限制返回的序列个数并且包含GROUP BY time()
子句
> 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
name: h2o_feet
tags: location=coyote_creek
time mean
---- ----
2015-08-18T00:00:00Z 8.0625
2015-08-18T00:12:00Z 7.8245
2015-08-18T00:24:00Z 7.5675
2015-08-18T00:36:00Z 7.303
该查询使用了一个InfluxQL函数和GROUP BY
子句中的时间间隔,计算查询时间范围内每12分钟的water_level
的平均值。SLIMIT 1
表示该查询请求的是measurement h2o_feet
中的一个序列。
请注意,如果以上查询语句中没有使用SLIMIT 1
,那么查询将返回measurement h2o_feet
中的两个序列:location=coyote_creek
和location=santa_monica
。
LIMIT和SLIMIT
将SLIMIT <N>
放在LIMIT <N>
的后面,则返回指定measurement的N
个序列中的前N
个数据点。
语法
SELECT_clause [INTO_clause] FROM_clause [WHERE_clause] GROUP BY *[,time(<time_interval>)] [ORDER_BY_clause] LIMIT <N1> SLIMIT <N2>
语法描述
N1
表示从measurement中返回的数据点个数。如果N1
大于measurement中所有数据点的个数,TSDB For InfluxDB®将返回该measurement中的所有数据点。
N2
表示从指定measurement中返回的序列个数。如果N2
大于measurement中所有序列的个数,TSDB For InfluxDB®将返回该measurement中的所有序列。
请注意,LIMIT
和SLIMIT
子句必须按照上述语法中的顺序使用。
示例
限制返回的数据点个数和序列个数
> SELECT "water_level" FROM "h2o_feet" GROUP BY * LIMIT 3 SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time water_level
---- -----------
2015-08-18T00:00:00Z 8.12
2015-08-18T00:06:00Z 8.005
2015-08-18T00:12:00Z 7.887
该查询从measurement h2o_feet
的一个序列中返回三个最早的数据点。
限制返回的数据点个数和序列个数,并且包含GROUP BY time()
子句
> 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 2 SLIMIT 1
name: h2o_feet
tags: location=coyote_creek
time mean
---- ----
2015-08-18T00:00:00Z 8.0625
2015-08-18T00:12:00Z 7.8245
该查询使用了一个InfluxQL函数和GROUP BY
子句中的时间间隔,计算查询时间范围内每12分钟的water_level
的平均值。LIMIT 2
请求两个最早的12分钟间隔的平均值(由时间戳决定),SLIMIT 1
请求measurement h2o_feet
中的一个序列。
注意:如果以上查询语句中没有使用LIMIT 2 SLIMIT 1
,那么查询将返回measurement h2o_feet
中的两个序列,并且,每个序列返回四个数据点。
InfluxDB® is a trademark registered by InfluxData, which is not affiliated with, and does not endorse, TSDB for InfluxDB®.