第30章 分析函数

Posted tudousix

tags:

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

第30章 分析函数
select ename,sal,(select max(sal) from emp) msal from emp;
select ename,sal,max(sal) over() msal from emp;
求每个部门的最大值
select ename,sal,max(sal) over(partition by deptno) msal from emp;

统计函数中一般不用加上with 子函数,效率并没得到提高

薪水递归求和
select ename,sal,sum(sal) over(order by deptno rows between unbounded preceding and current row) tsal from emp;
SQL> select ename,sal,sum(sal) over(order by deptno rows between unbounded preceding and current row) tsal from emp;

ENAME SAL TSAL
---------- ---------- ----------
CLARK 2450 2450
KING 5000 7450
MILLER 1300 8750
JONES 2975 11725
FORD 3000 14725
ADAMS 1100 15825
SMITH 800 16625
SCOTT 3000 19625
WARD 1250 20875
TURNER 1500 22375
ALLEN 1600 23975

ENAME SAL TSAL
---------- ---------- ----------
JAMES 950 24925
BLAKE 2850 27775
MARTIN 1250 29025

14 rows selected.


统计名次row_number()
select ename,sal,row_number() over(order by sal desc) top from emp;


查询每个部门的薪水前三名
select ename,deptno,sal from (select ename,deptno,sal,row_number() over(partition by deptno order by sal desc) top from emp) where top<=3;

SQL> select ename,deptno,sal from (select ename,deptno,sal,row_number() over(partition by deptno order by sal desc) top from emp) where top<=3;

ENAME DEPTNO SAL
---------- ---------- ----------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
SCOTT 20 3000
FORD 20 3000
JONES 20 2975
BLAKE 30 2850
ALLEN 30 1600
TURNER 30 1500

9 rows selected.

如果工资相等算作并列第几名第几名
select ename,deptno,sal from (select ename,deptno,sal,dense_rank() over(partition by deptno order by sal desc) top from emp) where top<=3;

SQL> select ename,deptno,sal from (select ename,deptno,sal,dense_rank() over(partition by deptno order by sal desc) top from emp) where top<=3;

ENAME DEPTNO SAL
---------- ---------- ----------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
SCOTT 20 3000
FORD 20 3000
JONES 20 2975
ADAMS 20 1100
BLAKE 30 2850
ALLEN 30 1600
TURNER 30 1500

10 rows selected.

 

















































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

裴礼文数学分析中的典型问题与方法第1章一元函数极限练习

第3章-动态基础分析实验

裴礼文数学分析中的典型问题与方法第2章一元函数的连续性练习

裴礼文数学分析中的典型问题与方法第4章一元函数积分学练习

算法导论

STM32F407的DSP教程第13章 DSP快速计算函数-三角函数和平方根