oracle 子查询和组合函数

时间:2024-09-19 15:03:26

oracle 子查询和组合函数

--查询与“SCOTT”在同一个部门的员工
select empno,ename,deptno from emp where deptno in
(select deptno from emp where ename='SCOTT'); --查找不在销售部和财务部工作的雇员编号、姓名和部门编号。
select empno,ename,deptno from emp where deptno not in
(select deptno from dept where dname in ('SALES','ACCOUNTING')); --EMP表中,找出每个超过他所在部门平均工资的员工编号,员工名称,薪水,部门编号。
select empno,ename,sal,deptno from emp e1 where sal >
(select avg(sal) from emp e2 where e1.deptno=e2.deptno); --查询公司员工工资的最大值,最小值,平均值,总和
select max(sal),min(sal),avg(sal),sum(sal) from emp; --查询各job的员工工资的最大值,最小值,平均值,总和
select job,max(sal),min(sal),avg(sal),sum(sal) from emp group by job; --选择具有各个job的员工人数(提示:对job进行分组)
select job,count(ename) from emp group by job; --显示平均工资为>2000的职位
select job,avg(sal) from emp group by job having avg(sal)>2500; --计算工资在2000以上,各种职位的平均工资大于3000的职位及平均工资
Select job,avg(sal) From emp where sal>2000 group by job having avg(sal)>3000; --找每个部门的最高和最低的工资
Select deptno,max(sal),min(sal) From emp group by deptno; --显示出工作名称(job)中包含"MAN"的员工平均工资,最高工资,最低工资及工资的和
select avg(sal),max(sal),min(sal),sum(sal) from emp where job like '%MAN%'; --显示出20号部门的员工人数
select count(*) from emp where deptno=20; --列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号
select ename from emp where deptno = (select deptno from dept where dname='SALES') --列出薪金高于公司平均水平的所有雇员
select ename from emp where sal>(select avg(sal) from emp); --列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
select ename,sal from emp where sal in (select sal from emp where deptno=30); --列出各个部门的MANAGER(经理)的最低薪金
Select deptno,min(sal) from emp where job="manager" group by deptno --查询工资比公司平均工资高的所有员工的员工号empno,姓名ename和工资sal。
select empno,ename,sal from emp where sal>(select avg(sal) from emp );