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