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;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值