Oracle分析函数学习笔记2

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

下面图老师小编跟大家分享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行。

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


使用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教程是: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的意思是或者选这个或者选那个,但不...

经验教程

701

收藏

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