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
  • 相关阅读:
    Scrapy的安装和基本使用方法
    使用BERT词向量
    主动学习方法实践:让模型变“主动”
    WSAI2020
    mac电脑的图片存储的位置
    问答系统-不能直接根据问题寻找答案?
    谷歌飞马PEGASUS
    通过强化学习协作多代理对话模型训练
    学习笔记(55)- 深度学习工具及平台
    学习笔记(54)- NLU
  • 原文地址:https://www.cnblogs.com/kenwong/p/4184962.html
Copyright © 2011-2022 走看看