oracle高级函数

前端之家收集整理的这篇文章主要介绍了oracle高级函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

参考: https://www.cnblogs.com/GotoJava/p/7249701.html

          

 

1. 分析函数

参考:分析函数和开窗函数over

分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组

然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。

 

分析函数与聚合函数对比:
普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,

并且每组每行都可以返回一个统计值(多个)。

 

over (partition by xx order by xx )  

over:关键字,用于标识分析函数

分组(partition by):分区子句,根据分区表达式的条件逻辑将单个结果集分成N组
排序(order by):排序子句,用于对分区中的数据进行排序
窗口(rows):开窗函数指定了函数所能影响的窗口范围,也就是说在这个窗口范围中都可以受到函数的影响,有些分析函数就是开窗函数

 

使用实例:

建表sql: 按f5执行完以后记得commit

分享图片

--创建表格
create table comm.student1(
name varchar2(20),city varchar2(20),age number,salary number  
);

--插入数据
INSERT INTO comm.student1(name,city,age,salary)
VALUES(Kebi,JiangSu,20,3000);
INSERT INTO comm.student1(name,salary)
VALUES(James,ChengDu,21,4000);
INSERT INTO comm.student1(name,salary)
VALUES(Denglun,BeiJing,22,3500);
INSERT INTO comm.student1(name,salary)
VALUES(Yangmi,London,2500);
INSERT INTO comm.student1(name,salary)
VALUES(Nana,NewYork,1000);
INSERT INTO comm.student1(name,salary)
VALUES(Sunli,salary)
VALUES(Dengchao,1500);
INSERT INTO comm.student1(name,salary)
VALUES(Huge,2800);
INSERT INTO comm.student1(name,salary)
VALUES(Pengyuyan,24,4500);
INSERT INTO comm.student1(name,salary)
VALUES(Baoluo,25,8500);
INSERT INTO comm.student1(name,salary)
VALUES(Huting,salary)
VALUES(Hurenxiang,23,2500);
View Code

猜你在找的Oracle相关文章