• 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;
    
     
    
     
  • 相关阅读:
    hibernate笔记--实体类映射文件"*.hbm.xml"详解
    struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
    struts2学习笔记--使用servletAPI实现ajax的一个小Demo
    Struts2学习笔记--使用Response下载文件和Struts2的StreamResult文件下载
    struts2学习笔记--上传单个和批量文件示例
    struts2学习笔记--拦截器(Interceptor)和登录权限验证Demo
    struts2学习笔记--使用Validator校验数据
    struts2学习笔记--OGNL表达式1
    easyui dialog 扩展load
    easyui filter 过滤时间段
  • 原文地址:https://www.cnblogs.com/blacop/p/5926678.html
Copyright © 2020-2023  润新知