1. 程式人生 > >oracle 子查詢和組合函式

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