1989 1985——max是1989 min是1985 升序是 1985,1989
1.取得每个部门最高薪水的人员名称
- 先查询每个部门的最高薪水。
select deptno,max(sal) maxsal from emp group by deptno;
- 将第一步的查询结果当做一张临时表。
select e.ename,t.* from emp e
join
(select deptno,max(sal) maxsal from emp group by deptno) t
on
e.deptno=t.deptno
where
e.sal=t.maxsal;
2.查询薪水在部门的平均薪水之上的员工姓名(ename)和薪资(sal)
- 查询部门的平均薪水
select deptno,avg(sal) avgsal from emp group by deptno;
- 将第一步的查询结果作为临时表
select e.ename,e.sal from emp e
join
(select deptno,avg(sal) avgsal from emp group by deptno) t
on
e.deptno=t.deptno
where
e.sal>t.avgsal;
3.取得部门中所有人的薪水的平均薪水等级(salgrade)
4.不准用组函数(Max),取得最高薪水
- select sal from emp order by sal desc limit 0,1;
5.取得平均薪水最高的部门的部门编号
- 取得每个部门的平均薪水然后倒序排列取得第一个
select deptno,avg(sal) avgsal from emp group by deptno order by avgsal desc limit 0,1;
6.取得平均薪水最高的部门的部门名称
select d.dname,avg(e.sal) avgsal from dept d
join
emp e
on
d.deptno=e.deptno
group by d.dname
order by avgsal desc
limit 1;
7.求平均薪水的等级最低的部门的部门名称
select d.dname,avg(sal) avgsal from dept d
join
emp e
on
d.deptno=e.deptno
group by d.dname
order by avgsal
limit 1;
