网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > 新手上路:Oracle分析函数学习笔记二  

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

2005-09-08  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  环境: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
网管bitscn_com

  
  已选择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

网管bitscn_com


  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行。

TAGs学习   笔记   函数   分析   新手上路   薪水   SQL   dense_rank    
 上一篇:新手上路:Oracle分析函数学习笔记三   下一篇:新手上路:Oracle分析函数学习笔记一
相关文章列表
新手上路:Oracle分析函数学习笔记二 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.PL/SQL循序渐进全面学习教程--Oracle
2.详细介绍ORACLE sqlplus命令
3.神秘的 ORACLE DUAL
4.Oracle PL/SQL语言基础
5.如何使用Oracle case函数
6.ORACLE的PL/SQL二
7.PL/SQL学习笔记(一)
8.数据库手册:速查Oracle函数列表
9.新手学习之Oracle trunc()函数的用法
10.oracle数据库中sql基础
最新推荐文章:
1.与数据库无关的处理放到数据库以外来实现
2.Oracle 10g第2版新特性之SQL和PL/SQL
3.通过PL/SQL访问Web Services
4.菜鸟学oracle - 用PL/SQL画直方图
5.重新编译PLSQL中无效对象或指定对象
6.Oracle高级技巧
7.深入了解Oracle 10g新的多重集运算符
8.在SQL中删除重复记录(多种方法)
9.Oracle:PL/SQL中怎样使用Array
10.数据库手册:速查Oracle函数列表
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的