日期:2014-05-17  浏览次数:20557 次

以下这段代码的中间部分是怎么执行的?
题目是这样的:返回所在系平均年龄在所有系平均年龄以上的教师的相关信息(也就是说如果某个系的教师的平均年龄在大于所有教师的平均年龄就返回某个系的所有教师的信息)
数据源图片如下:

SQL code

SELECT 教工号,姓名,课程号,所在系,性别,年龄
FROM [教工$] A
WHERE (SELECT AVG(年龄)
FROM [教工$] 
WHERE 所在系=A.所在系) >
(SELECT AVG(年龄) 
FROM [教工$] )
ORDER BY 教工号


结果图片如下:

请问:
SQL code
SELECT AVG(年龄)
FROM [教工$] 
WHERE 所在系=A.所在系

是怎么执行的?不用GROUP BY 也能实现分组?
看不懂哦,请大家给我解释一下,谢谢您


------解决方案--------------------
单列的话没必要显式写上group by
------解决方案--------------------
探讨
题目是这样的:返回所在系平均年龄在所有系平均年龄以上的教师的相关信息(也就是说如果某个系的教师的平均年龄在大于所有教师的平均年龄就返回某个系的所有教师的信息)
数据源图片如下:


SQL code


SELECT 教工号,姓名,课程号,所在系,性别,年龄
FROM [教工$] A
WHERE (SELECT AVG(年龄)
FROM [教工$]
WHERE 所在系=A.……