天天看點

oracle sql

--查詢出有員工的部門資訊

select * from dept where deptno   in (select distinct(deptno) from emp);

select * from dept t1 where exists (select deptno from emp t2 where t1.deptno=t2.deptno);

--查詢出沒有員工的部門資訊

select * from dept where deptno not  in (select distinct(nvl(deptno,0)) from emp)

--查詢出每個部門的平均工資 部門名稱

select dept.dname,t.部門平均工資  from dept join (select deptno,avg(nvl(sal,0)) 部門平均工資 from emp group by deptno) t on dept.deptno=t.deptno

--查詢出平均工資最高的部門名稱和編号

--顯示部門名稱和編号

--select t1.dname,t1.deptno from dept t1 

--各個部門的平均工資

--select deptno,avg(sal) 平均工資 from emp group by deptno

--各個部門平均工資最高多少

--select max(temp.部門平均工資) from (select avg(sal) 部門平均工資 from emp group by deptno) temp;

select t1.dname,t1.deptno,temp1.平均工資 from dept t1 join (select deptno,avg(sal) 平均工資 from emp group by deptno having avg(sal)=( select max(temp.部門平均工資) from (select avg(sal) 部門平均工資 from emp group by deptno) temp)

) temp1 on t1.deptno=temp1.deptno ;