不理解请老师解答?

来源:4-1 数据操作语言:DELETE语句

慕瓜2155115

2020-04-29 10:52:05

DELETE e
FROM t_emp e JOIN
(SELECT deptno,AVG(sal) AS avg FROM t_emp GROUP BY deptno) t
ON e.deptno=t.deptno AND e.sal<t.avg; 

e.sal<t.avg  e.sal不是代表所有员工的底薪吗?t.avg是分组后的每个部门的平均底薪 我想的是查询的结果应该是每个员工的底薪和每个部门的平均底薪作比较,而不是每个部门的员工的底薪和自己部门的平均底薪作比较,但结果是每个部门的员工的底薪和自己部门的平均底薪作比较,为什么不太理解?

写回答

1回答

好帮手慕觉浅

2020-04-29

同学你好:

当我们内连接这两个表之后,会将部门deptno及该部门的平均工资avg拼接在原来的t_emp上,如图:

http://img.mukewang.com/climg/5ea92ca80959667706590374.jpg

然后再加上条件e.sal<t.avg,就是每个员工的底薪和每个部门的平均底薪作比较。

如果解决了你的疑惑,请采纳,祝学习愉快~ 


0

0 学习 · 2669 问题

查看课程