sql学习笔记

  1. sql高级查询

    1. row_number()over(partition by dpetno order by salary) row_i

      • 按部门分组,每个部门根据工资高低倒序排列,每个部门的排列顺序在最后一个显示(列名:row_id),排序无重复

        显示部门名称 员工名称

        select d.dname,e.ename,e.deptno,e.salary,e.comm,ROW_NUMBER()over(partition by e.deptno order by e.salary desc) emp_id from emp e, dept d where e.deptno = d.deptno

    2. rank() over(partition by nvl(e.deptno,150) order by e.salary desc) row_id

      • 按部门分组,每个部门根据工资高低倒序排列,每个部门的排列顺序在最后一个显示(列名:row_id),排序存在并列名次,(列名:row_id)跳跃排序(1 2 2 4)

        显示部门名称 员工名称

        select d.dname,e.ename,rank() over(partition by nvl(e.deptno,150) order by e.salary desc) row_id from emp e, dept d where e.deptno = d.deptno
    3. dense_rank 排序存在并列名次,(列名:row_id)不会跳跃排序(1 2 2 3)
  2. 2

  3. 2

  4. 2
  5. 2
原文地址:https://www.cnblogs.com/gcjava/p/6598766.html