当前位置: 首页 > news >正文

SQL窗口函数大小详解

窗口大小

OVER 子句中的 frame_clause 选项用于指定一个滑动的窗口。窗口总是位于分区范围之内,是分区的一个子集。指定了窗口之后,分析函数不再基于分区进行计算,而是基于窗口内的数据进行计算。
指定窗口大小的语法如下:

ROWS | RANGE BETWEEN frame_start AND frame_end

其中,ROWS 表示以行为单位计算窗口的偏移量;RANGE 表示以数值为单位计算窗口的偏移量;
frame_start 用于定义窗口的起始位置,可以指定以下内容之一:

  • UNBOUNDED PRECEDING,窗口从分区的第一行开始;
  • N PRECEDING,窗口从当前行之前的第 N 行、范围 N 之内开始;
  • CURRENT ROW,窗口从当前行开始。

frame_end 用于定义窗口的结束位置,可以指定以下内容之一:

  • CURRENT ROW,窗口到当前行结束;

  • M FOLLOWING,窗口到当前行之后的第 M 行、范围 M 之内结束;

  • UNBOUNDED FOLLOWING,窗口到分区的最后一行结束。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
第一个窗口使用 ROWS 选项,包含了前后各 1 行以及当前行;第二个窗口使用 RANGE 选项,包含了当前行的数值减去 1(4-1=3)到当前行的数值加上 1(4+1=5)之间的所有数据;
如果没有指定窗口大小选项,默认使用的窗口如下:

  • 如果指定了 ORDER BY, 默认窗口为 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW;
  • 如果没有指定 ORDER BY, 默认窗口为 ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING。
http://www.lryc.cn/news/272547.html

相关文章:

  • C#上位机与欧姆龙PLC的通信06---- HostLink协议(FINS版)
  • 认识SpringBoot项目中的Starter
  • ChatGPT 4.0真的值得花钱买入吗?
  • vue3对比vue2是怎样的
  • openGauss学习笔记-184 openGauss 数据库运维-升级-升级验证
  • [Verilog语言入门教程] Verilog 减法器 (半减器, 全减器, 加减共用)
  • 预编译仓库中的 Helm Chart
  • Python requests get和post方法发送HTTP请求
  • 在Cadence中单独添加或删除器件与修改网络的方法
  • 轻松调整视频时长,创意与技术的新篇章
  • 树与二叉树笔记整理
  • 如何自动生成 API 接口文档 - 一份详细指南
  • 【CF比赛记录】—— Good Bye 2023(A、B、C)
  • MySQL:索引
  • CUMT--Java复习--核心类
  • Redis:原理速成+项目实战——Redis实战4(解决Redis缓存穿透、雪崩、击穿)
  • 后端开发——jdbc的学习(一)
  • 阿里云免费SSL证书时长只有3个月,应对方法来了
  • Flutter 中使用 ICON
  • 百度编辑器常用设置
  • Java ORM 框架 Mybatis详解
  • 前端:html+css+js实现CSDN首页
  • 三种 SqlSession
  • Mybatis SQL构建器类 - 问题答案
  • React 是什么?有什么特性?有哪些优势?
  • 瑞吉外卖项目详细总结
  • Cytoscape 3.10安装包下载及安装教程
  • data.TensorDataset解析
  • 贝锐花生壳全新功能:浏览器一键远程访问SSHRDP远程桌面
  • 2024 年度 AAAI Fellows 揭晓!清华大学朱军教授入选!