“查找平均工资最高的部门。”SQL子查询执行
select dept_name
from instructor
group by dept_name
having avg (salary) >= all (select avg (salary)
from instructor
group by dept_name)
基于以上的嵌套子查询,我有点糊涂了它是如何执行。有人可以证实我的解释是否正确?
第一行第二行from instructor
将运行,根据该关系,元组将被分组dept_name
。然后,在由dept_name
分组的新建关系中,您将检查每个组的平均工资,并将该值与子查询中形成的新教师关系的所有其他平均工资进行比较。它是否正确?子查询将形成一个新的关系,所以你实际上会有两个单独的关系在运行?
(select avg (salary)
from instructor
group by dept_name)
在上面的子查询,本来我以为无论属性不在组中聚集by子句HAVE出现在选择子句。但是在这种情况下,为什么在子查询的select子句中不存在dept_name
?
只是将其更改为文本! – LP45