请问这个SQL的过滤条件是怎么执行的

select e.ename,e.salary,e.deptno
from employee e join
(select deptno,round(avg(salary)) avgsal
from employee
group by deptno) a
on e.deptno = a.deptno
and e.salary > a.avgsal

from 后面的子句查询出的结果是三条,我想知道e.salary > a.avgsal这个过滤条件是只要大于a表中的一条记录就可以还是大于a表中的所有记录才可以?

e.salary > a.avgsal这个过滤条件代表 查询表中所有薪水高于部门平均薪水的员工。

表中的一条记录就可以了, 你想想, 如果要所有的记录都要满足你说的条件, 那其中有些记录是满足你那个条件的,那不就不能查出来了啊。
正确一点来说不是说一条记录, 而是满足e.salary > a.avgsal 这个条件的都被查询出来