加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

dense_rank()over(partition by ... order by ...)

(2014-12-12 16:40:42)
标签:

dense_rank()over()

dense_rank()over(par

分类: Oracle
6.dense_rank()over(partition by ... order by ...)
说明:
连续排序,当有两个第一名时,接下来还是第二名;三个第一名时,接下来也还是第二名。
partition by 不能单独使用。
  6.1.根据工资进行降序排序
    SELECT G.*, dense_rank() OVER(order by 工资 desc) 工资降序
    from ( select '张三' 人员,'财务' 部门, '5000' 工资  from dual
          union 
          select '李四','财务', '5200'  from dual
          union 
          select '王五','人事', '4000' from dual
          union 
          select '刘二','研发', '6500' from dual
          union 
          select '陈一','研发', '7000' from dual
          union 
          select '赵六','研发', '7000' from dual) G 
结果:
赵六 研发 7000 1
陈一 研发 7000 1
刘二 研发 6500 2
李四 财务 5200 3
张三 财务 5000 4
王五 人事 4000 5
  6.2.dense_rank()over(partition by ... order by ...)
  示例:根据部门分组,部门工资进行排序
    SELECT G.*, dense_rank() OVER(partition by 部门 order by 工资 desc) 部门内工资排名
    from ( select '张三' 人员,'财务' 部门, '5000' 工资  from dual
          union 
          select '李四','财务', '5200'  from dual
          union 
          select '王五','人事', '4000' from dual
          union 
          select '刘二','研发', '6500' from dual
          union 
          select '陈一','研发', '7000' from dual
          union 
          select '赵六','研发', '7000' from dual) G
    结果:
王五 人事 4000 1
赵六 研发 7000 1
陈一 研发 7000 1
刘二 研发 6500 2
李四 财务 5200 1
张三 财务 5000 2

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有