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 ;


你可能感兴趣的:(oracle,sql)