下面图老师小编跟大家分享Oracle分析函数学习笔记2,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~
【 tulaoshi.com - 编程语言 】
环境:windows 2000 server + Oracle8.1.7 + sql*plus
目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。
2.rank()、dense_rank() 的使用
原表信息:
SQL break on deptno skip 1 -- 为效果更明显,把不同部门的数据隔段显示。
SQL select deptno,ename,sal 
  2  from emp
  3  order by deptno,sal desc;
    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
已选择14行。
使用rank()查出各部门薪水前三名的员工姓名、薪水。
SQL select * from (
  2  select deptno,rank() over(partition by deptno order by sal desc) rk,ename,sal
  3  from emp
  4  )
  5  where rk=3
  6  /
    DEPTNO         RK ENAME             SAL
---------- ---------- ---------- ----------
        10          1 KING             5000
                    2 CLARK            2450
                    3 MILLER           1300
        20          1 SCOTT            3000
                    1 FORD             3000
                    3 JONES            2975
        30          1 BLAKE            2850
                    2 ALLEN            1600
                    3 TURNER           1500
已选择9行。
使用dense_rank()查出各部门薪水前三名的员工姓名、薪水。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)SQL select * from (
  2  select deptno,dense_rank() over(partition by deptno order by sal desc) drk,ename,sal
  3  from emp
  4  )
  5  where drk=3
  6  /
    DEPTNO        DRK ENAME             SAL
---------- ---------- ---------- ----------
        10          1 KING             5000
                    2 CLARK            2450
                    3 MILLER           1300
        20          1 SCOTT            3000
                    1 FORD             3000
                    2 JONES            2975
                    3 ADAMS            1100
        30          1 BLAKE            2850
                    2 ALLEN            1600
                    3 TURNER           1500
已选择10行。
来源:http://www.tulaoshi.com/n/20160219/1621891.html
看过《Oracle分析函数学习笔记2》的人还看了以下文章 更多>>