一 . 分析函数
1. row_number
用法说明:row_number 为有序组中的每一行返回一个唯一的排序值,序号由ORDER BY 子句指定,从1开始
语法: row_number() over ([partition by column] roder_by_clause)
[b]举例:scott模式下的emp 表
SQL> select * from emp
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- ---------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
使用函数 row_number 按工资排序编个号:-),看看谁第一。(注:工资相同的排名也不相同)
SQL> select ename,job,deptno,sal,row_number()over (order by sal desc) as sal_rank from emp;
ENAME JOB DEPTNO SAL SAL_RANK
-------------------- ------------------ ---------- ---------- ----------
KING PRESIDENT 10 5000 1
SCOTT ANALYST 20 3000 2
FORD ANALYST 20 3000 3
JONES MANAGER 20 2975 4
BLAKE MANAGER 30 2850 5
CLARK MANAGER 10 2450 6
ALLEN SALESMAN 30 1600 7
TURNER SALESMAN 30 1500 8
MILLER CLERK 10 1300 9
WARD SALESMAN 30 1250 10
MARTIN SALESMAN 30 1250 11
ADAMS CLERK 20 1100 12
JAMES CLERK 30 950 13
SMITH CLERK 20 800 14
下面看看在同一个部门下进行比比看谁的工资高:-)。(注:工资相同的排名也不相同)
SQL> select ename,job,deptno,sal,row_number() over (partition by deptno ORDER BY sal desc) ral_rank from emp;
ENAME JOB DEPTNO SAL RAL_RANK
-------------------- ------------------ ---------- ---------- ----------
KING PRESIDENT 10 5000 1
CLARK MANAGER 10 2450 2
MILLER CLERK 10 1300 3
SCOTT ANALYST 20 3000 1
FORD ANALYST 20 3000 2
JONES MANAGER 20 2975 3
ADAMS CLERK 20 1100 4
SMITH CLERK 20 800 5
BLAKE MANAGER 30 2850 1
ALLEN SALESMAN 30 1600 2
TURNER SALESMAN 30 1500 3
WARD SALESMAN 30 1250 4
MARTIN SALESMAN 30 1250 5
JAMES CLERK 30 950 6
2. rank
[b] 用法说明:rank 函数计算一个值在一组值中的排位,排位是以1开头的连续整数。具有相等值的行排位相同,序数随后跳跃相应的数值,即:如果两行的序数为1,则没有序数2,下一行的序号为3.
语法:rank () over([partition by colunm] order_by_clause)[/b]
由于用法和row_number 想象(“具有相等值的行排位相同,序数随后跳跃相应的数值”就这点不同),这里只简单举例如下:
SQL> select ename,job,deptno,sal,rank () over (partition by deptno order by sal desc) denserank from emp;
ENAME JOB DEPTNO SAL DENSERANK
-------------------- ------------------ ---------- ---------- ----------
KING PRESIDENT 10 5000 1
CLARK MANAGER 10 2450 2
MILLER CLERK 10 1300 3
SCOTT ANALYST 20 3000 1
FORD ANALYST 20 3000 1
JONES MANAGER 20 2975 3
ADAMS CLERK 20 1100 4
SMITH CLERK 20 800 5
BLAKE MANAGER 30 2850 1
ALLEN SALESMAN 30 1600 2
TURNER SALESMAN 30 1500 3
WARD SALESMAN 30 1250 4
MARTIN SALESMAN 30 1250 4
JAMES CLERK 30 950 6
分享到:
相关推荐
ORACLE中函数;ORACLE中函数;ORACLE中函数;ORACLE中函数;ORACLE中函数;ORACLE中函数;
1.round函数(四舍五入) 描述 : 传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果 参数: number : 欲处理之数值 decimal_places : 四舍五入 , 小数取几位 ( 预设为 0 ) select round(123.456, ...
ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码...
oracle函数大全 oracle函数大全 oracle函数大全
Oracle数据库中一些常用的函数,以及用法示例。
oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...
oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全
oracle内部函数大全 oracle内部函数大全
oracle中的函数集合 SQL中的单记录函数、系统函数。Decode函数的语法结构如下: decode (expression, search_1, result_1) decode (expression, search_1, result_1, search_2, result_2) decode (expression, ...
oracle常用函数总结 oracle常用函数总结
postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数
oracle 的存储过程和函数的语法 如下
首先在oracle中没有datediff()函数 可以用这个方法在oracle中实现该函数的功能。
Oracle 递归函数介绍
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
oracle自定义日期函数、你值得拥有!
本文档详细介绍了如何在Oracle数据库中实现像C#等其它编程语言中Split函数来拆分字符的功能。例子简单易懂,并附有详细的实现过程。
ORACLE crc3函数,将字符类型转换成唯一的数字类型,例如CSDN,经过crc32函数转换后,得到的值为-1016176976
Oracle聚合函数Oracle聚合函数Oracle聚合函数
Oracle公共函数大全