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

OFFSET 和SOFFSET对返回的points和series进行分页。

一、OFFSET子句

OFFSET 将从查询结果的第N个points开始进行分页。

语法:

SELECT_clause [INTO_clause] FROM_clause
[WHERE_clause] [GROUP_BY_clause] [ORDER_BY_clause]
LIMIT_clause OFFSET <N>
[SLIMIT_clause]

OFFSET中的N表示从查询结果的第N个points开始进行分页。注意OFFSET必须和LIMIT搭配使用,如果只有OFFSET而没有LIMIT,将会导致不一致的查询结果。

OFFSET示例sql

  1. 示例1

    为了对比效果更明显,我们先看下面的sql

上面的sql查询除了measurement的前10行

接下来看下面的sql

SELECT "water_level","location" FROM "h2o_feet"
LIMIT 3 OFFSET 4



可以看到,LIMIT 3 OFFSET 4将查询结果的从下标4开始的第5、6、7行总共3行显示了出来。

  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)
ORDER BY time DESC
LIMIT 2 OFFSET 2 SLIMIT 1



这个例子非常复杂,下面是逐条分解:

  • The SELECT clause specifies an InfluxQL function.
  • The FROM clause specifies a single measurement.
  • The WHERE clause specifies the time range for the query.
  • The GROUP BY clause groups results by all tags (*) and into 12-minute intervals.
  • The ORDER BY time DESC clause returns results in descending timestamp order.
  • The LIMIT 2 clause limits the number of points returned to two.
  • The OFFSET 2 clause excludes the first two averages from the query results.
  • The SLIMIT 1 clause limits the number of series returned to one.
  • The SOFFSET 1 clause paginates the series returned.

如果上面的sql中没有SOFFSET 2,则会查询到不同的series:


二、SOFFSET子句

SOFFSET 将从查询结果的第N个series开始进行分页。

语法:

SELECT_clause [INTO_clause] FROM_clause [WHERE_clause]
GROUP BY *[,time(time_interval)]
[ORDER_BY_clause]
[LIMIT_clause] [OFFSET_clause]
SLIMIT_clause SOFFSET <N>

SOFFSET 中的N指定了开始分页的地方,SOFFSET要跟SLIMIT子句一同搭配使用。如果只使用SOFFSET而没有SLIMIT子句,则可能会导致不一致的查询结果。


SOFFSET示例sql

  1. 示例1



    上面的sql将h2o_feet表中tag的 location = santa_monica的所有数据。如果没有SOFFSET 1子句,查询结果将会变成是location = coyote_creek的数据。为了更好的说明这个问题,依次看下面的示例。
SELECT count("water_level") FROM "h2o_feet" GROUP BY *



可以看到,上面的sql查询出每个tag的water_level字段个数。

让我们在上面sql的基础上,加上SLIMIT 1:



因为加上了SLIMIT 1,所以查询结果只展示了第一个tag的结果。

再在上面sql的基础上加上SOFFSET 1:

可见,因为加上了SOFFSET 1,所以查询结果从第二个series开始展示(下标是从0开始的)。

  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)
ORDER BY time DESC
LIMIT 2 OFFSET 2
SLIMIT 1 SOFFSET 1

示例sql相对比较复杂,下面将逐个子句的进行分析(挺简单的,不翻译了):

  • The SELECT clause specifies an InfluxQL function.
  • The FROM clause specifies a single measurement.
  • The WHERE clause specifies the time range for the query.
  • The GROUP BY clause groups results by all tags (*) and into 12-minute intervals.
  • The ORDER BY time DESC clause returns results in descending timestamp order.
  • The LIMIT 2 clause limits the number of points returned to two.
  • The OFFSET 2 clause excludes the first two averages from the query results.
  • The SLIMIT 1 clause limits the number of series returned to one.
  • The SOFFSET 1 clause paginates the series returned.

    如果没有SOFFSET 1,查询结果将会是:

可以看到,查询到的是另一个series的数据。

10.InfluxDB-InfluxQL基础语法教程--OFFSET 和SOFFSET子句的更多相关文章

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

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) LIMIT和SLIM ...

  2. 2.InfluxDB-InfluxQL基础语法教程--目录

    本文翻译自官网,官方文档地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) InfluxQL ...

  3. 前端开发利器 Emmet 介绍与基础语法教程

    在前端开发的过程中,编写 HTML.CSS 代码始终占据了很大的工作比例.特别是手动编写 HTML 代码,效率特别低下,因为需要敲打各种“尖括号”.闭合标签等.而现在 Emmet 就是为了提高代码编写 ...

  4. 6.InfluxDB-InfluxQL基础语法教程--GROUP BY子句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) GROUP BY子句 ...

  5. 5.InfluxDB-InfluxQL基础语法教程--WHERE子句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) WHERE子句 语法 ...

  6. 8.InfluxDB-InfluxQL基础语法教程--ORDER BY子句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) 在InfluxDB中 ...

  7. 7.InfluxDB-InfluxQL基础语法教程--INTO子句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) 通过INTO子句,可 ...

  8. 4.InfluxDB-InfluxQL基础语法教程--基本select语句

    本文翻译自官网,官网地址:(https://docs.influxdata.com/influxdb/v1.7/query_language/data_exploration/) 基本语法如下: SE ...

  9. 3.InfluxDB-InfluxQL基础语法教程--数据说明

    下面是本次演示的示例数据 表名:h2o_feet 数据示例: 数据描述 : 表h2o_feet中所存储的是6分钟时间区间内的数据. 该表有一个tag,即location,该tag有两个值,分别为coy ...

随机推荐

  1. 渗透测试学习 二十二、getshell总结

    大纲   管理员权限拿shell 普通权限拿shell 常见cms拿shell 进后台主要是可以对网站前台的内容,样式等做操作,要改脚本的内容的权限只有在webshell的权限下才可以(某些情况除外) ...

  2. 基于Spark.NET和ML.NET Automated ML (自动学习)进行餐厅等级的检查预测

    简介 Apache Spark是一个开源.分布式.通用的分析引擎.多年来,它一直是大数据生态系统中对大型数据集进行批量和实时处理的主要工具.尽管对该平台的本地支持仅限于JVM语言集,但其他通常用于数据 ...

  3. 在Rust中,cargo使用国内镜像源

    一个编程语言依赖包管理的普通问题. cargo解决得比较优雅. 一,新建$HOME/.cargo/config文件 [source.crates-io] registry = "https: ...

  4. 树型DP(2)

    声明 https://blog.csdn.net/no1_terminator/article/details/77824790 参考课件和讲授来自Accelerator 找树的直径 树的直径定义为一 ...

  5. 《从HBase offheap到Netty的内存管理》

      JVM中的堆外内存(off-heap memory)与堆内内存(on-heap memory) 1. 堆内内存(on-heap memory) 1.1 什么是堆内内存 Java 虚拟机在执行Jav ...

  6. ajax技术初识与应用

    一.ajax技术初识 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.Ajax不是一种新的编 ...

  7. SQL Server关系的创建

    如果两个表的相关列都是主键或具有唯一约束,创建的就是一对一关系. 如果只有一列具有主键或唯一约束,则创建的时一对多关系 关联字段的字符类型必须相同. 1. 一对一关系 USE [Howie] crea ...

  8. vs code 中配置git go

    { "window.zoomLevel": 1, "editor.fontSize": 15, //"files.autoSave": &q ...

  9. 舒服的MarkDown软件Mark Text

  10. 《计算机网络第7版》PDF+《计算机网络释疑与习题解答第7版》PDF

    谢希仁 链接:https://pan.baidu.com/s/1_sM9bFL0y3S1NXBz5rLyvg 提取码:po3i 计算机网络(第7版)谢希仁 · 语雀 https://www.yuque ...