oracle分析函数汇总

Posted luckyzli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle分析函数汇总相关的知识,希望对你有一定的参考价值。

目录导航:

1. 分析函数语法

2. count() over():统计分区中各组的行数,partition by 可选,order by 可选

3. sum() over():统计分区中记录的总和,partition by 可选,order by 可选

4. avg() over() :统计分区中记录的平均值,partition by 可选,order by 可选

5. min() over() :统计分区中记录的最小值,partition by 可选,order by 可选
max() over() :统计分区中记录的最大值,partition by 可选,order by 可选

1、分析函数语法

function_name(<argument>,<argument>...) over(<partition_Clause><order by_Clause><windowing_Clause>);
说明:
function_name():函数名称
argument:参数
over( ):开窗函数
partition_Clause:分区子句,数据记录集分组,group by...
order by_Clause:排序子句,数据记录集排序,order by...
windowing_Clause:开窗子句,定义分析函数在操作行的集合,三种开窗方式:rows、range、Specifying

2、count() over():统计分区中各组的行数,partition by 可选,order by 可选

SELECT deptno,ename,sal,count(*) over() FROM emp --总计数

技术图片

SELECT deptno,ename,sal,count(*) over(order by deptno) FROM emp --递加计数

技术图片

select deptno,ename,sal,count(*) over(partition by deptno) from emp --分组计数

技术图片

select deptno,ename,sal,count(*) over(partition by deptno order by ename) from emp --分组递加计数

技术图片


3、sum() over():统计分区中记录的总和,partition by 可选,order by 可选

select deptno,ename,sal,sum(sal) over() from emp --总累计求和

技术图片

select deptno,ename,sal,sum(sal) over(order by deptno,ename) from emp --递加累计求和

技术图片

select deptno,ename,sal,sum(sal) over(partition by deptno) from emp --分组累计求和

技术图片

select deptno,ename,sal,sum(sal) over(partition by deptno order by deptno,ename) from emp  --分组递加累计求和

技术图片


4、avg() over() :统计分区中记录的平均值,partition by 可选,order by 可选

select deptno,ename,sal,avg(sal) over() from emp --总平均值

技术图片

select deptno,ename,sal,avg(sal) over(order by deptno,ename) from emp --递加求平均值

技术图片

select deptno,ename,sal,avg(sal) over(partition by deptno) from emp --分组求平均值

技术图片

select deptno,ename,sal,avg(sal) over(partition by deptno order by deptno,ename) from emp --分组递加求平均值

技术图片


5、min() over() :统计分区中记录的最小值,partition by 可选,order by 可选
max() over() :统计分区中记录的最大值,partition by 可选,order by 可选

select deptno,ename,sal,min(sal) over() from emp --求总最小值

技术图片

select deptno,ename,sal,min(sal) over(order by deptno,ename) from emp --递加求最小值

技术图片

select deptno,ename,sal,min(sal) over(partition by deptno) from emp --分组求最小值

技术图片

select deptno,ename,sal,min(sal) over(partition by deptno order by deptno,ename) from emp --分组递加求最小值

技术图片

select deptno,ename,sal,max(sal) over() from emp --求总最大值

技术图片

select deptno,ename,sal,max(sal) over(order by deptno,ename) from emp --递加求最大值

技术图片

select deptno,ename,sal,max(sal) over(partition by deptno) from emp --分组求最大值

技术图片

select deptno,ename,sal,max(sal) over(partition by deptno order by deptno,ename) from emp --分组递加求最大值

技术图片

以上是关于oracle分析函数汇总的主要内容,如果未能解决你的问题,请参考以下文章

分析函数系列之sum(col1) over(partition by col2 order by col3):实现分组汇总或递增汇总

oracle中的over函数怎么用的,啥意思

MySQL实现常用分析函数

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

ORACLE常用函数汇总

Oracle函数汇总