9.InfluxDB-InfluxQL基礎語法教程--LIMIT and SLIMIT 子句


本文翻譯自官網,官網地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/)

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


二、SLIMIT子句

SLIMIT 返回指定measurement的前N個series的所有point。

有一個持續的問題是,需要SLIMIT查詢中包含group by*。請注意,SLIMIT子句必須按上述語法中列出的順序出現。

SLIMIT示例sql

  1. 示例1

    上面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

查詢結果:


三、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

  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

查詢結果:

由查詢結果可知,查詢返回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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM