1、通常用法:
select deptno,empno,ename,sal,
MIN(SAL) OVER(partition by deptno order by hiredate) minsal,
MAX(SAL) OVER(partition by deptno order by hiredate) maxsal
from emp;
DEPTNO EMPNO ENAME SAL MINSAL MAXSAL
------ ----- ---------- --------- ---------- ----------
10 7782 CLARK 2450.00 2450 2450
10 7839 KING 5000.00 2450 5000
10 7934 MILLER 1300.00 1300 5000
20 7369 SMITH 800.00 800 800
20 7566 JONES 2975.00 800 2975
20 7902 FORD 3000.00 800 3000
20 7788 SCOTT 3000.00 800 3000
20 7876 ADAMS 1100.00 800 3000
30 7499 ALLEN 1600.00 1600 1600
30 7521 WARD 1250.00 1250 1600
30 7698 BLAKE 2850.00 1250 2850
30 7844 TURNER 1500.00 1250 2850
30 7654 MARTIN 1250.00 1250 2850
30 7900 JAMES 950.00 950 2850
查出在本分区内当前行或当前行以上范围内的最大和最小值。
需要注意的是:
1、不加partition,则是从第一行开始,maxsal的值保持不变,直到碰到比它大的值为止,然后又变成较大的值,
再一直往下寻找。
DEPTNO EMPNO ENAME SAL MINSAL MAXSAL
------ ----- ---------- --------- ---------- ----------
20 7369 SMITH 800.00 800 800
30 7499 ALLEN 1600.00 800 1600
30 7521 WARD 1250.00 800 1600
20 7566 JONES 2975.00 800 2975
30 7698 BLAKE 2850.00 800 2975
10 7782 CLARK 2450.00 800 2975
30 7844 TURNER 1500.00 800 2975
30 7654 MARTIN 1250.00 800 2975
10 7839 KING 5000.00 800 5000
30 7900 JAMES 950.00 800 5000
20 7902 FORD 3000.00 800 5000
10 7934 MILLER 1300.00 800 5000
2、如果没有order by,则在全表搜索:
DEPTNO EMPNO ENAME SAL MINSAL MAXSAL
------ ----- ---------- --------- ---------- ----------
20 7369 SMITH 800.00 800 5000
30 7499 ALLEN 1600.00 800 5000
30 7521 WARD 1250.00 800 5000
20 7566 JONES 2975.00 800 5000
30 7654 MARTIN 1250.00 800 5000
30 7698 BLAKE 2850.00 800 5000
10 7782 CLARK 2450.00 800 5000
20 7788 SCOTT 3000.00 800 5000
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30741760/viewspace-2100001/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30741760/viewspace-2100001/