码迷,mamicode.com
首页 > 数据库 > 详细

oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

时间:2016-10-02 00:48:35      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

---求平均工资
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;

 

 

 

oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

标签:

原文地址:http://www.cnblogs.com/blacop/p/5926678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!