加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle高级函数

发布时间:2020-12-12 13:22:39 所属栏目:百科 来源:网络整理
导读:参考:?https://www.cnblogs.com/GotoJava/p/7249701.html ? ? ? ? ?? ? 1. 分析函数 参考:分析函数和开窗函数over 分析函数是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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读