加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

用ROW_NUMBER函数可以解决什么问题

发布时间:2020-12-12 15:35:42 所属栏目:百科 来源:网络整理
导读:作用(Purpose) 用来统计top-n或者bottom-n 比如你可以用它来统计(或者说查询)出 a. 各个部门 工资 最 高的 前 n个员工 b. 各个部门最 先入职的 前 n个员工 所以符合这个应用情景条件是: a.1对多(部门对员工) b.要对多的一方(员工)最高或最低的某个
  • 作用(Purpose)
    用来统计top-n或者bottom-n
    比如你可以用它来统计(或者说查询)出
    a.各个部门工资高的 n个员工
    b.各个部门最先入职的 n个员工
    所以符合这个应用情景条件是:
    a.1对多(部门对员工)
    b.要对多的一方(员工)最高或最低的某个字段(工资,入职时间等)进行统计
    c.前n个

  • 语法(Syntax)
    ROW_NUMBER() over(PARTITION BY **A** ORDER BY **B** desc/asc)
    其中:
    A: 1对多中1的那一方
    B: 最高或最低的某个字段

  • 具体实例(Examples)
    各个部门工资高的 3个员工

SELECT department_id,first_name,last_name,salary FROM ( SELECT department_id,salary,ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary desc) rn FROM HR.employees ) WHERE rn <= 3 ORDER BY department_id,salary DESC,last_name;

各个部门最先入职的 3个员工

SELECT department_id,HIRE_DATE,ROW_NUMBER() OVER (PARTITION BY DEPARTMENT_ID ORDER BY HIRE_DATE ASC) R FROM HR.employees ) WHERE R <=3 ORDER BY department_id,HIRE_DATE ASC,last_name;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读