网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle中轻松取得建表和索引的DD.
.详细讲解Oracle数据库中不同的恢.
.SQLPlus命令使用指南(三).
.如何在Oracle 中实现类似自动增加.
.ORACLE在HP_UX下的系列问题处理(.
.SQL Server和Oracle数据锁定比较.
.深入讲解ORA-00600 2262错误的解.
.损坏控制文件的恢复方法.
.linux学习笔记:进程及作业.
.Oracle数据库安全策略.
.Oracle数据库技术(5).
.详细讲解Oracle SQL*Loader的使用.
.在UNIX环境下创建第二个数据库实.
.ORA01034/ORA27101的解决方法.
.深入研究Oracle数据库中空间管理.
.在Oracle10g Release 2中的Autot.
.嵌入式Linux指南.
.了解raw trace文件的各项内容.
.A little test for index..
.经典的Oracle图书推荐-之二.

新手上路:Oracle分析函数学习笔记二

发表日期:2008-2-9



  环境: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()查出各部门薪水前三名的员工姓名、薪水。
  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行。
上一篇:新手上路:Oracle分析函数学习笔记一 人气:826
下一篇:新手上路:Oracle分析函数学习笔记三 人气:1000
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐