首页 > 数据库 >【笔记】Oracle 窗口函数

【笔记】Oracle 窗口函数

时间:2022-08-28 20:58:43浏览次数:90  
标签:rows 名次 函数 over 笔记 rank Oracle 窗口 row

Oracle 窗口函数

简单来说,窗口函数是分析函数的一种,通常可以理解成over()函数
构成:函数名①() over(partition by 分组的列名 order by 排序的列名 XXX)
XXX是指特殊使用的,比如rows,range等等

例如: 
SUM(a.amount) over(order by a.visited_on desc rows 1 preceding)
SUM(a.amount) over(order by a.visited_on desc range 1 preceding)
SUM(a.amount) over(order by a.visited_on ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING)
(在力扣上看到的大佬写的)

其中:rows和range分别表示选择后几行、选择数据范围
rows between 中的一些参数代表意思
preceding:往前
following:往后
current row:当前行
unbounded:无边界,
unbounded precending 表示从最前面的起点开始, 
unbounded following:表示到最后面的终点

函数名①一般来说有几种
一种是聚合函数,像是sum、avg、count这种
一种是排序函数(序列函数),像是rank、dense_rank、row_number这种
一种是不好归类的,像是row_number这种行数范围的

常用的函数使用

sum() 求和
max() 最大值
min() 最小值
avg() 平均值
count() 统计数
row_number() 按照大小进行排名,相同大小名次不一样,就是按照行号走下去
rank() 按照大小进行排名,纯粹的排名,相同大小名次一样,会有名次的跳跃,即除了相同的,其余排名顺序与行号相同,第一名有十个,那第十一个就是第十一名
dense_rank() 按照大小进行排名,相同大小名次一样,但是不会进行名次的跳跃,即第一名玩了就是第二名,就算第一名有十个,那第十一个也是第二名
lag() 向上进行偏移对数据进行查询
lead() 向下进行偏移对数据进行查询

聚合函数用的比较少
序列函数可参考:https://www.cnblogs.com/jokingremarks/p/16286637.html
lag和lead可参考:https://www.cnblogs.com/jokingremarks/p/16622458.html

标签:rows,名次,函数,over,笔记,rank,Oracle,窗口,row
From: https://www.cnblogs.com/jokingremarks/p/16633605.html

相关文章

  • Spring学习笔记(二)
    1.SpringIOC1.1控制反转IOC在传统的Java应用中,一个类想要调用另一个类中的属性或方法,通常会先在其代码中通过newObject()的方式将后者的对象创建出来,然后才能实现......
  • 8/28 深入理解计算机系统笔记 内存映射
    9.8内存映射定义:将一个虚拟内存区域和一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容的过程被称为内存映射。虚拟内存区域可以映射到下面两种类型的对象中的......
  • 8/28 深入理解计算机系统笔记 动态内存分配
    9.9动态内存分配动态内存分配器维护一个进程的虚拟内存区域,称为堆。对于每个进程,内核维护一个变量brk,它指向堆的顶部。分配器将堆视做一组不同大小的块的集合来维护。......
  • tcpip详解-读书笔记
    TCP/IP详解卷一第一版读书笔记第一章:应用层关心是应用程序的细节,而不是数据在网络中对的传输活动,下三层对应用程序一无所知,但他们要处理所有的通信细节。七层代理可......
  • 享元模式学习笔记
    引用微信读书——游戏编程模式前言“使用共享以高效地支持大量的细粒度对象。”迷雾升起,一片雄伟、古老而茂盛的森林在眼前展现。数不尽的远古铁杉迎面扑来,宛如一座......
  • Fiddler学习笔记--基础了解(7)
    首次打开Fiddler默认是不会捕获HTTPS,需要配置后方可捕获HTTPStools--FiddlerOptions--HTTPS,然后将界面选项全部勾选上如果我们有远程监控需求,需要切换值connections,......
  • delphi TdxBarManager学习笔记
    一.WholeRow工具显示模式WholeRow:true工具栏单独在一行显示,不管你有几个内含元素默认为WholeRow:false,即同一行内可以排列多个工具栏,像下图就同时排列了三个工具栏......
  • ShardingSphere数据分片(Oracle中为分区)
    学习:https://www.cnblogs.com/steakliu/p/16519304.html前言上一篇我们说了ShardingSphere的读写分离,使用读写分离能够减轻单库的读写操作,从而提升数据库的吞吐量,但是......
  • 【C++-笔记】override与final说明符
    在effectiveC++中提到C++没有Java那样的finalclasses的禁止派生的机制,遂想到在C++Primer中好像提到过final说明符,正好就连带着override说明符一起复习一下了。简介首......
  • 【算法笔记】一文解决数组类型算法题(1)
    本文主要介绍数据结构中的数组,以及LeetCode题库下面相关题型的分类和解法套路。数组理论概述定义数组是存储在一块连续内存上的,由相同元素集合组成的数据结构。利用索......