几个经典的SQL

1.查询每个部门薪资大于平均薪资的员工
SELECT e.ename FROM emp e JOIN (SELECT deptno,AVG(sal) AS avgsal FROM emp GROUP BY deptno) temp ON  e.depno=temp.depno WHERE e.sal>temp.avgsal

2.查所员工的年薪资按年薪资升序排序 

SELECT ename ,(sal+IFNULL(comm,0))*12 AS yearsal FROM emp ORDER BY yearsal ASC

3.查询薪资高于平均薪资的所有员工所在部门上级领导(自连接)员工薪资等级

SELECT  e.enam,e.depno,b.ename as leadername,s.level

FROM emp e

JOIN dept d ON e.deptno=d.deptno

LEFT JOIN emp b ON e.mgr=b.empno --为显示无上级领导的员工使用左外连接

JOIN salgrade s ON e.sal BETWEEN s.lowsal AND s.hisal

WHERE e.sal>(SELECT AVG(sal) FROM emp)

猜你喜欢

转载自blog.csdn.net/qq_39506978/article/details/80195035