555

-- 1.查询部门平均工资在2500元以上的部门名称及平均工资。

select d.dname ,avg(e.sal)

from dept d

join emp e 

on d.deptno=e.deptno

group by d.dname

having(avg(e.sal)>2500);

-- 2.查询员工岗位中不是以“SA”开头并且平均工资在2500元以上的岗位及平均工资,并按平均工资降序排序。

select e.job,avg(e.sal)

from emp e

where e.job not like 'SA%'

group by e.job

having(avg(e.sal)>2500)

order by avg(e.sal) desc

-- 3.查询部门人数在2人以上的部门名称、最低工资、最高工资,并对求得的工资进行四舍五入到整数位。

select d.dname,min(e.sal),round(max(e.sal),0)

from dept d join emp e on d.deptno = e.deptno

having((count(e.ename)>2))

group by d.dname

-- 4.查询岗位不为SALESMAN,工资和大于等于2500的岗位及每种岗位的工资和。

select e.job, sum(e.sal)

from emp e

having(e.job not like 'SALEMAN')

group by e.job

-- 5.显示经理号码和经理姓名,这个经理所管理员工的最低工资,没有经理的KING也要显示,不包括最低工资小于3000的,按最低工资由高到低排序。

select e.empno,e.ename,min(d.sal)

from emp e left join emp d on d.mgr = e.empno

group by e.empno,e.ename

having(min(d.sal)>=3000)

order by min(d.sal) desc

-- 6.查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号、姓名及工资。

selectempno, ename, job

from

emp

where sal>(select sal

from emp 

where empno=7782) and job=(select job

from emp 

where empno=7369)

-- 7.查询工资最高的员工姓名和工资。

select ename, sal

from emp 

where sal=(select max(sal)

from emp)

-- 8.查询部门最低工资高于10号部门最低工资的部门的编号、名称及部门最低工资。

selec te.deptno, d.dname,min(sal)

from emp e

join dept d

on e.deptno=d.deptno

group by e.deptno, d.dname

having min(sal)>(select min(sal)

from emp

where deptno=10)

你可能感兴趣的:(555)