当前位置:网站首页 > 技术博客 > 正文

开窗函数 rows between



函数名(参数) OVER (PARTITION BY子句 ORDER BY子句 ROWS/RANGE子句)

分析子句又由下面三部分组成: PARTITION BY :分组子句,表示分析函数的计算范围,不同的组互不相干; ORDER BY:
排序子句,表示分组后,组内的排序方式; ROWS/RANGE:窗口子句,是在分组(PARTITION
BY)后,组内的子分组(也称窗口),此时分析函数的计算范围窗口,而不是PARTITON。窗口有两种,ROWS和RANGE;

1.范围限定用法 CURRENT ROW: 当前行
UNBOUNDED:不受控制的,无限的
UNBOUNDED PRECEDING: 区间的第一行
UNBOUNDED FOLLOWING:区间的最后一行
UNBOUNDED PRECEDING AND UNBOUNED FOLLOWING:针对当前所有记录的前一条、后一条记录,分组中的所有记录
PRECEDING:在…之前, N PRECEDING:当前行之前的N行,可以是数字用于RANGE数据范围限定,也可以是一个能计算出数字的表达式
FOLLOWING:在…之后,N FOLLOWING:当前行之后的N行,可以是数字用于RANGE数据范围限定,也可以是一个能计算出数字的表达式 ROWS BETWEEN
UNBOUNDED PRECEDING AND CURRENT ROW :指第一行至当前行的数据
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING :指当前行到最后一行的汇总
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW :指当前行的上一行(ROWNUM-1)到当前行的数据
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING :指当前行的上一行(ROWNUM-1)到当前行的下一行(ROWNUM+1)的数据
RANGE BETWEEN CURRENT ROW AND 350 FOLLOWING:指当前行到当前行数据+350的范围内的数据
RANGE BETWEEN 5 PRECEDING AND 5 FOLLOWING:指当前行数据幅度减5加5后的范围内的数据

三、练习:

 

range是对order by 的值进行判断范围计算的,根据实际的值和当前的值进行判断取定数据范围的。
#preceding 在…之前
#following 在…之后

 

在这里插入图片描述

#current row 当前行

 

在这里插入图片描述

#unbounded preceding 区间的第一行

 

在这里插入图片描述
#unbounded following 区间的最后一行

 

在这里插入图片描述
#unbounded preceding and unbounded following 最后一行的值和第一行的值

 

在这里插入图片描述

row是对order by 的值进行判断范围计算的,根据实际的值和当前的值进行判断取定数据范围的
#preceding 在…之前
#following 在…之后

 

在这里插入图片描述

#current row 当前行

 

在这里插入图片描述
#unbounded preceding 区间的第一行

 

在这里插入图片描述
#unbounded following 区间的最后一行

 

在这里插入图片描述
#unbounded preceding and unbounded following 最后一行的值和第一行的值

 

在这里插入图片描述

版权声明


相关文章:

  • 我的世界宝可梦指令表20202025-04-21 12:30:04
  • scrum实例2025-04-21 12:30:04
  • juc并发编程与源码分析2025-04-21 12:30:04
  • 结构体如何初始化赋值2025-04-21 12:30:04
  • office破解教程2025-04-21 12:30:04
  • 弹性盒子常用属性2025-04-21 12:30:04
  • java项目开发视频2025-04-21 12:30:04
  • 双硬盘如何将固态变成主硬盘2025-04-21 12:30:04
  • 网页加密访问2025-04-21 12:30:04
  • redis集群操作命令2025-04-21 12:30:04