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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

 

 

以上是关于oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE分组查询和统计等

Oracle中一个表数据大概有一亿条,现在需要进行数据按照三个字段进行分组查询数据统计,如何查询较快

Oracle通用函数,分组函数,子查询

17.07.29 分组函数 多表连接 子查询

ORACLE分组排序查询

mysql根据分组和条件查询以后如何统计记录的条数