oracle 子查询和组合函数

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 );

猜你喜欢

转载自www.cnblogs.com/hglibin/p/9904044.html
今日推荐