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;
    
     
    
     
  • 相关阅读:
    一 基础--进制转化
    七牛云上传视频并截取第一帧为图片(js实现)
    FNScanner二维码接口openView自定义扫码Demo
    UIPickerView 模块示例demo
    vPlayer 模块Demo
    doT的高级用法及loadData的使用
    acmPush模块示例demo
    UIChatBox模块示例demo
    分享一款基于aui框架的图文发布界面
    基于js的APP多语言处理
  • 原文地址:https://www.cnblogs.com/blacop/p/5926678.html
Copyright © 2011-2022 走看看