This Domain(Admin5.com) is for Sale:

Oracle分析函数学习笔记1

时间:2007-12-23  来源:不详  作者:迈克DB
环境:windows 2000 server Oracle8.1.7 sql*plus

目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。 织梦好,好织梦

1.row_number() 的使用
原表信息:

织梦好,好织梦

SQL> break on deptno skip 1 -- 为效果更明显,把不同部门的数据隔段显示。
SQL> select deptno,ename,sal
2 from emp
3 order by deptno,sal desc;

内容来自dedecms

DEPTNO ENAME SAL
---------- ---------- ----------
10 KING 5000
CLARK 2450
MILLER 1300
本文来自织梦

20 SCOTT 3000
FORD 3000
JONES 2975
ADAMS 1100
SMITH 800

织梦好,好织梦

30 BLAKE 2850
ALLEN 1600
TURNER 1500
WARD 1250
MARTIN 1250
JAMES 950
dedecms.com


已选择14行。

织梦好,好织梦


使用row_number()查出各部门薪水最高的三个员工姓名、薪水,多于三个的只取三个。 dedecms.com

SQL> select * from (
2 select deptno,row_number() over(partition by deptno order by sal desc) rw,ename,sal
3 from emp
4 )
5 where rw<=3;

织梦内容管理系统

DEPTNO RW ENAME SAL
---------- ---------- ---------- ----------
10 1 KING 5000
2 CLARK 2450
3 MILLER 1300

织梦好,好织梦

20 1 SCOTT 3000
2 FORD 3000
3 JONES 2975
织梦内容管理系统

30 1 BLAKE 2850
2 ALLEN 1600
3 TURNER 1500

copyright dedecms


已选择9行。 织梦内容管理系统

体会:row_number() 返回的主要是“行”的信息,并没有按照sal排名,如
20 1 SCOTT 3000
2 FORD 3000
scott与ford薪水一样多,ford前面的2仅仅是行数、记录条数的感念。

内容来自dedecms

本文来自织梦

本文来自织梦

copyright dedecms


看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息