over是分析函数与开窗短语之间的关键字如 select row_number() over (partition by deptno order by sal) rn,emp.* from emp; row_number()表示生成序号, over 表示前面的函数是基于下面的数据范围(开窗)的 (partition by deptno order by sal)表示数据范围是以部分号分组,并按薪水升序排列SQL> select row_number() over (partition by deptno order by sal) rn,emp.* from emp;
row_number() over() ?
select row_number() over (partition by deptno order by sal) rn,emp.* from emp;
row_number()表示生成序号,
over 表示前面的函数是基于下面的数据范围(开窗)的
(partition by deptno order by sal)表示数据范围是以部分号分组,并按薪水升序排列SQL> select row_number() over (partition by deptno order by sal) rn,emp.* from emp;
RN EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ----- ---------- --------- ----- ----------- --------- --------- ------
1 7934 MILLER CLERK 7782 1982-1-23 1300.00 10
2 7782 CLARK MANAGER 7839 1981-6-9 2450.00 10
3 7839 KING PRESIDENT 1981-11-17 5000.00 10
1 7369 SMITH CLERK 7902 1980-12-17 800.00 20
2 7876 ADAMS CLERK 7788 1987-5-23 1100.00 20
3 7566 JONES MANAGER 7839 1981-4-2 2975.00 20
4 7788 SCOTT ANALYST 7566 1987-4-19 3000.00 20
5 7902 FORD ANALYST 7566 1981-12-3 3000.00 20
1 7900 JAMES CLERK 7698 1981-12-3 950.00 30
2 7654 MARTIN SALESMAN 7698 1981-9-28 1250.00 1400.00 30
3 7521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 30
4 7844 TURNER SALESMAN 7698 1981-9-8 1500.00 0.00 30
5 7499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 30
6 7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30
14 rows selected
SQL>