问题 单项选择题

设员工关系Emp(E_no,E_name,E_sex,D_name,E_age,E_Add),关系Emp中的属性分别表示员工的员工号、姓名、性别、所在部门、年龄和通信地址;其中D_name是部门关系Dept的主键。查询各个部门员工的最大年龄、最小年龄,以及最大年龄与最小年龄之间年龄差的SQL语句如下: SELECT D_nanle,MAX(E_age),MIN(E_age),() FROM Emp ();

FROM Emp ();

A.GROUP BY E_name

B.GROUP BY D_name

C.ORDER BY E_name

D.ORDER BY D_name

答案

参考答案:B

解析:

正确答案为B。GROUP BY子句可以对元组进行分组,保留字GROUP BY后面跟着一个分组属性列表。题中的语句是将Emp关系的元组重新组织,并进行分组使得同一个部门的元组被组织在一起,然后分别求出每个部门最大年龄的员工与最小年龄的员工之间的年龄差值。 根据以上分析,完整的SQL语句如下: SELECT D_name,MAX(E_age),MIN(E_age),MAX(E_age)-MIN(E_age) AS 年龄差 FROM Emp GROUP BY D_name;

选择题
单项选择题