首页 > 数据库技术 > 详细

Oracle 分析函数

时间:2014-08-26 17:50:06      阅读:378      评论:0      收藏:0      [点我收藏+]

Oracle分析函数

--row_number():连续不重复 1234567

--rank():跳跃可重复 12333678

--dense_rank():连续可重复 12333456


row_number() over(partition by deptno order by sal desc)

  over( partition by [分区字段,可以有多个] order by [一个或多个字段])

笔试题题目如下:

题目如下:

请用一条sql语句查询出scott.emp表中每个部门工资前三位的数据,显示结果如下:


DEPTNO    SAL1       SAL2       SAL3

------ ---------- ---------- -------------------------------------

    10       5000       2450       1300

    20       3000       2975       1100

    30       2850       1600       1500

select deptno
      ,max(sal) 第一名
      ,max(decode(t
                 ,2
                 ,sal)) 第二名
      ,min(sal) 第三名
  from (select sal
              ,deptno
              ,t
          from (select empno
                      ,ename
                      ,sal
                      ,row_number() over(partition by deptno order by sal desc) t
                      ,deptno
                  from emp) e
         where e.t <= 3) group by deptno;


Oracle 分析函数

原文:http://my.oschina.net/KingPan/blog/306840

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!