欢迎光临
我们一直在努力

分析函数

–row_number

SELECT ename,

       deptno,

       rownum,

       row_number() over(ORDER BY deptno) rn,

       rank() over(ORDER BY deptno) rk, –跳号

       dense_rank() over(ORDER BY deptno) dense_rk –不跳号

  FROM emp– over 必须跟order by

 –row_number

SELECT ename,

       deptno,

       rownum,

       row_number() over(partition by deptno ORDER BY deptno) rn,

       rank() over(partition by deptno ORDER BY deptno) rk, 

       dense_rank() over(partition by deptno ORDER BY deptno) dense_rk 

  FROM emp

 –row_number

SELECT ename,

       deptno,

       rownum,

       row_number() over(partition by deptno ORDER BY sal) rn,

       rank() over(partition by deptno ORDER BY sal) rk,

       dense_rank() over(partition by deptno ORDER BY sal) dense_rk

  FROM emp

–求每个部门的最高工资

SELECT *

  FROM (SELECT ename,

               deptno,

               rownum,

               row_number() over(PARTITION BY deptno ORDER BY sal DESC) rn

        –rank() over(partition by deptno ORDER BY sal) rk,

        –dense_rank() over(partition by deptno ORDER BY sal) dense_rk

          FROM emp)

 WHERE rn = 1

 –sum,avg,max,min

 SELECT ename,

        deptno,

        sal,

        SUM(sal) over(PARTITION BY deptno) AS “部门汇总”, SUM(sal) over() AS “全部汇总”

   FROM emp;

–累加

SELECT ename,

        deptno,

        sal,

        SUM(sal) over(order BY sal), SUM(sal) over(order BY sal,rowid)

   FROM emp;

 SELECT ename,

        deptno,

        sal,

        avg(sal) over(PARTITION BY deptno) AS “部门汇总”, avg(sal) over() AS “全部汇总”

   FROM emp;

SELECT empno,

       ename,

       sal

  FROM emp a

 WHERE sal = (SELECT MIN(sal) FROM emp b WHERE a.deptno = b.deptno)

–改写

SELECT *

  FROM (

        

        SELECT a.*,

                row_number() over(PARTITION BY a.deptno ORDER BY a.sal) rn

        

          FROM emp a)

 WHERE rn = 1

 

SELECT *

  FROM emp

 WHERE sal in(SELECT MIN(sal) over(PARTITION BY deptno ORDER BY sal) FROM emp a);

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。