Oracle分析函数学习笔记2

2016-02-19 19:49 6 1 收藏

下面图老师小编跟大家分享Oracle分析函数学习笔记2,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

环境:windows 2000 server + Oracle8.1.7 + sql*plus

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

        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()查出各部门薪水前三名的员工姓名、薪水。

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教程是:oracle 函数。PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:  单行函数  组函数  本文将讨论如何利用单行函数以及使用规则。 SQL中的单行函数 ...
1.简介: SQL Server 2005中的窗口函数帮助你迅速查看不同级别的聚合,通过它可以非常方便地累计总数、移动平均值、以及执行其它计算。 窗口函数功能非常强大,使用起来也十分容易。可以使用这个技巧立即得到大量统计值。 窗口是用户指定的一组行。 开窗函数计算从窗口派生的结果集中各行的值。 2.适用范围: 排名开窗函数和聚合开窗函...
捕获数学函数异常 作者: 江汉石油学院计算机系 周云才 下载本文配套源代码 假如我们要用一个数学函数,比如反正弦函数asin(x),如果变元x的值是由用户提供或某个中间结果,则在调用时必须判断其取值范围是合理,是否满|x|<=1?即 if(fabs(x)<=1) y=asin(x); else y=… 对...
标签: ASP
      在这篇asp之数学函数里,我们将会以表格的形式,让大家了解到关于ASP中能用到的数学函数,里面包括一个数的绝对值、一个数的平方根,角度的正弦、余弦值等。 函数 语法 功能 Abs Abs(num) 返回一个数的绝对值 Sqr Squ(num) 返回一个数的平方根 Sin Sin(num) 返回角度的正弦值 Cos Cos(num) 返回角度...
标签: Web开发
15、 !ELEMENT 联系人(姓名, EMAIL) !ELEMENT 姓名(#PCDATA) !ELEMENT EMAIL(#PCDATA) 如果我们使用逗号,来分隔两个子元素,那么XML文件中,元素姓名就必须出现在元素EMAIL前面。反之,可以无序。 16、XML正则表达式的匹配原则不允许循环逻辑。所以,OR的意思是或者选这个或者选那个,但不...

经验教程

695

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部