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