zoukankan      html  css  js  c++  java
  • CONNECT_BY_ROOT

    1.select * from  EMP t  where t.deptno = 10;
     
    EMPNO     ENAME     JOB     MGR     HIREDATE     SAL     COMM     DEPTNO
    7782     CLARK     MANAGER     7839     1981/6/9     2450.00          10
    7839     KING     PRESIDENT            1981/11/17       5000.00          10
    7934     MILLER     CLERK     7782     1982/1/23      1300.00          10
     
    2.使用connect_by_root,显示名字和薪水,如果有下属,那么还显示上司的名字和下属薪水的组合
     
    SELECT CONNECT_BY_ROOT t.ename as name , t.sal
    FROM emp t
    WHERE t.deptno = 10
    CONNECT BY PRIOR t.empno = t.mgr;
     
     NAME         SAL
    MILLER     1300.00
    CLARK      2450.00
    CLARK      1300.00
    KING        5000.00
    KING        2450.00
    KING        1300.00
     
    3.下面我就可以利用上面的铺垫查询每个人管理的组(他们团队的平均薪水了)
     
    SELECT name ,avg(sal)
    FROM
        (SELECT CONNECT_BY_ROOT t.ename as name, t.sal
         FROM emp t
         WHERE t.deptno = 10
         CONNECT BY PRIOR t.empno = t.mgr
        )
    GROUP BY name ;
     
    NAME     AVG(SAL)
    MILLER     1300                                    --他是最底层的码农,没有下属
    CLARK      1875                                    --他管了一个人,那个码农,平均薪水(2450 + 1300) / 2
    KING        2916.66666666667                --他是部门10的boss,两个下属
     
     
    转自: http://blog.chinaunix.net/uid-26896647-id-3424394.html
  • 相关阅读:
    vsftp搭建
    进程管理相关命令(15 个)
    系统管理与性能监视命令 (9 个)
    系统权限及用户授权相关命令(4 个)
    用户管理命令(10个命令)
    深入网络操作命令(9条命令)
    查看系统用户登陆信息的命令(7 个)
    查看文件及内容处理命令(21个命令)
    有关磁盘与文件系统的命令(16个命令)
    linux kernel bisops.h
  • 原文地址:https://www.cnblogs.com/kenwong/p/4184962.html
Copyright © 2011-2022 走看看