• 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
  • 相关阅读:
    师生关系
    2019-2020 20191316《信息安全专业导论》第二周学习总结
    计算机科学概论问题2
    android studio device file explorer 无法向/storage/emulated/0/上传文件
    【转载】android打包APK
    android app no modules 错误,不能运行
    Error:Unable to locate adb within SDK in Android Studio
    Ubuntu set up 8
    Ubuntu 18.04.3 安装 CUDA 10.2
    Intel Realsense SDK for Android 编译
  • 原文地址:https://www.cnblogs.com/kenwong/p/4184962.html
Copyright © 2020-2023  润新知