欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句

程序员文章站 2023-11-09 17:57:40
本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) LIMIT和SLIMIT分别用于限制InfluxDB中每次查询时返回的points或series的数目。 一、LIMIT ......

本文翻译自官网,官网地址:()

limit和slimit分别用于限制influxdb中每次查询时返回的points或series的数目。

一、limit子句

limit 子句,返回查询结果的前n条points。

语法:

select_clause [into_clause] from_clause [where_clause]
[group_by_clause] [order_by_clause]
limit <n>

limit示例sql

9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句


二、slimit子句

slimit 返回指定measurement的前n个series的所有point。

有一个持续的问题是,需要slimit查询中包含group by*。请注意,slimit子句必须按上述语法中列出的顺序出现。

slimit示例sql

  1. 示例1
    9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句
    上面sql查询h2o_feet表中1个series的所有point的water_level。

  2. 示例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

查询结果:
9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句


三、limit and slimit

当limit 和slimit 一起使用时,表示的意思是查询指定measurement前n个series的前n个point。英文原文如下:limit followed by slimit returns the first points from series in the specified measurement。它指的是说返回的前n个series中,每个series的前n个points。下面将给出示例sql。

语法:

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. 示例1
    9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句

  2. 示例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

查询结果:
9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句
由查询结果可知,查询返回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

查询结果:
9.InfluxDB-InfluxQL基础语法教程--LIMIT and SLIMIT 子句
可见每个series有4个point。