經典MySQL的sql語句面試題
阿新 • • 發佈:2019-02-10
一、取得平均薪水最高的部門的部門編號
第一步:求出部門的平均薪水
select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno;
deptno | avgsal |
10 | 2916.666667 |
20 | 2715.000000 |
30 | 1566.666667 |
第二步:將以上查詢結果當成臨時表t(deptno, avgsal),查詢平均薪水的最高值
select max(t.avgsal) as maxAvgSal from t;
將t指向上述查詢結果:
select max(t.avgsal) as maxAvgSal from (select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno) t;
maxAvgSal |
2916.666667 |
第三步:過濾第一步的查詢結果,將第二步查詢到的最高值代入:
select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno having avgsal = 2916.666667;
轉換成:
select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno having avgsal =
(select max(t.avgsal) as maxAvgSal from (select e.deptno, avg(e.sal) as avgsal from emp e group by e.deptno) t);