動力節點經典34道MySQL面試題(上)

表dept

表emp

表salgrade

1~取得每個部門的最高薪水的人員名稱
SELECT t.*,e.ENAME
FROM (SELECT DEPTNO,max(SAL) maxsal FROM emp GROUP BY DEPTNO) t
JOIN emp e
ON e.DEPTNO=t.DEPTNO and e.SAL=t.maxsal
2~哪些人的薪水在部門平均薪水之上
SELECT t.*,e.ENAME,e.SAL
FROM (SELECT DEPTNO,avg(SAL) avgsal
FROM emp
GROUP BY DEPTNO) t
JOIN emp e
ON e.DEPTNO=t.DEPTNO AND e.SAL > t.avgsal
ORDER BY DEPTNO
3~取得部門中(所有人的)平均薪水等級
SELECT t.*,s.GRADE
FROM (SELECT DEPTNO,avg(SAL) avgsal
FROM emp e
GROUP BY DEPTNO) t
JOIN salgrade s
ON t.avgsal BETWEEN s.LOSAL AND s.HISAL
ORDER BY DEPTNO
4~取得部門中所有人的平均的薪水等級
SELECT t.DEPTNO,avg(salgrade)
FROM (SELECT e.SAL,s.GRADE salgrade,e.DEPTNO
FROM emp e
JOIN salgrade s
ON e.SAL BETWEEN s.LOSAL AND s.HISAL) t
GROUP BY DEPTNO
ORDER BY DEPTNO
5~不準用組函數(max),取得最高的薪水(給出兩種解決方案)
方法一:
SELECT SAL,ENAME
FROM emp
ORDER BY SAL DESC
LIMIT 1
方法二:
SELECT SAL maxsal
FROM emp
WHERE SAL NOT IN(SELECT distinct e1.SAL
FROM emp e1
JOIN emp e2
ON e1.SAL < e2.SAL)
6~取得平均薪水最高的部門的部門編號
方法一:
SELECT t.DEPTNO,t.avgsal avgsal
FROM (SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
ORDER BY avgsal DESC)t
LIMIT 1
方法二:
SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
HAVING avgsal =(SELECT max(t.avgsal)
FROM (SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
ORDER BY DEPTNO) t)
7~取得平均薪水最高的部門的部門名稱
方法一:
SELECT d.DNAME
FROM(SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
ORDER BY avgsal DESC) t
JOIN dept d
ON d.DEPTNO=t.DEPTNO
LIMIT 1
方法二:
SELECT d.DNAME
FROM dept d
JOIN (SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
HAVING avgsal =(SELECT max(t.avgsal)
FROM (SELECT DEPTNO,avg(sal) avgsal
FROM emp
GROUP BY DEPTNO
ORDER BY DEPTNO) t)) t2
ON t2.DEPTNO=d.DEPTNO
8~求平均薪水的等級最低的部門的部門名稱
SELECT d.DEPTNO,d.DNAME
FROM dept d
GROUP BY DEPTNO,DNAME
HAVING DEPTNO=(SELECT t.DEPTNO
FROM (SELECT e.DEPTNO,avg(SAL) avgsal
FROM emp e
GROUP BY DEPTNO) t
JOIN salgrade s
ON t.avgsal BETWEEN s.LOSAL AND s.HISAL
ORDER BY GRADE
LIMIT 1)
9~取得薪水最高的前五名員工
SELECT ENAME,SAL
FROM emp
ORDER BY SAL DESC
LIMIT 5
10~取得薪水最高的第六到第十名員工
SELECT ENAME,SAL
FROM emp
ORDER BY SAL DESC
LIMIT 5,5


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章