zoukankan      html  css  js  c++  java
  • oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

    ---求平均工资
    SELECT AVG(sal) FROM emp;
    -----------大于平均工资
    SELECT e.ename,e.job,e.sal
    FROM emp e
    WHERE e.sal>(SELECT AVG(sal) FROM emp)
    
    --------
    --e领导编号=m雇员编号
    --emp雇员表,dept部门表
    SELECT 
    e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
    m.ename 领导姓名,m.job 领导职位,
    d.dname 部门名称
    FROM emp e,emp m,dept d
    WHERE e.sal>(
    SELECT AVG(sal) FROM emp)
    AND e.mgr=m.empno(+)
    AND e.deptno=d.deptno
    
    -----------加FROM子查询语句,统计人数
    
    SELECT 
    e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
    m.ename 领导姓名,m.job 领导职位,
    d.dname 部门名称,dtemp.count 部门人数
    FROM emp e,emp m,dept d,(
    SELECT deptno dno,COUNT(empno) count
    FROM emp
    GROUP BY deptno) dtemp
    WHERE e.sal>(
    SELECT AVG(sal) FROM emp)
    AND e.mgr=m.empno(+)
    AND e.deptno=d.deptno
    AND dtemp.dno(+)=d.deptno
    
    ----加个工资表。工资等级
    
    SELECT 
    e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
    m.ename 领导姓名,m.job 领导职位,
    d.dname 部门名称,dtemp.count 部门人数,
    s.grade 工资等级
    FROM emp e,emp m,dept d,(
    SELECT deptno dno,COUNT(empno) count
    FROM emp
    GROUP BY deptno) dtemp,salgrade s
    WHERE e.sal>(
    SELECT AVG(sal) FROM emp)
    AND e.mgr=m.empno(+)
    AND e.deptno=d.deptno
    AND dtemp.dno(+)=d.deptno
    AND e.sal BETWEEN s.losal AND s.hisal
    
    --61m-----使用此工资等级的人数
    SELECT s1.grade sg,COUNT(e1.empno) count
    FROM emp e1,salgrade s1
    WHERE e1.sal BETWEEN s1.losal AND s1.hisal
    GROUP BY s1.grade
    
    --第七部--嵌入工资等级的人数,以s1.grade为分组
    ----
    SELECT s1.grade sg,COUNT(e1.empno) count
    FROM emp e1,salgrade s1
    WHERE e1.sal BETWEEN s1.losal AND s1.hisal
    GROUP BY s1.grade;
    
    ----完成体
    SELECT 
    e.ename 雇员姓名,e.job 雇员职位,e.sal 雇员工资,
    m.ename 领导姓名,m.job 领导职位,
    d.dname 部门名称,dtemp.count 部门人数,
    s.grade 工资等级,stemp.count 等级人数
    --m领导,
    FROM emp e,emp m,dept d,(
    SELECT deptno dno,COUNT(empno) count
    FROM emp
    GROUP BY deptno) dtemp,
    --dtemp 部门人数
    salgrade s,(
    SELECT s1.grade sg,COUNT(e1.empno) count
    FROM emp e1,salgrade s1
    WHERE e1.sal BETWEEN s1.losal AND s1.hisal
    GROUP BY s1.grade
    ) stemp
    --stemp 工资等级人数
    WHERE e.sal>(
    SELECT AVG(sal) FROM emp)
    AND e.mgr=m.empno(+)
    AND e.deptno=d.deptno
    AND dtemp.dno(+)=d.deptno
    AND e.sal BETWEEN s.losal AND s.hisal
    AND s.grade=stemp.sg;
    
     
    
     
  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/blacop/p/5926678.html
Copyright © 2011-2022 走看看