问题 单项选择题

假定某企业2014年5月的员工工资如下表所示:查询人数大于2的部门和部门员工应发工资的平均工资的SQL语句如下:SELECT(1)FROM工资表(2)(3);

空白(2)处应选择()

A.ORDERBY姓名

B.ORDERBY部门

C.GROUPBY姓名

D.GROUPBY部门

答案

参考答案:D

解析:

本题考查SQL方面的基础知识。查询各部门人数大于2和部门员工的平均工资的SQL语句如下:SELECT部门,AVG(应发工资)AS平均工资FROM工资表GROUPBY部门HAVINGCOUNT(姓名)>2;SQL提供可为关系和属性重新命名的机制,这是通过使用具有"Old-nameasnew-name"形式的as子句来实现的。As子句即可出现在select子句,也可出现在from子句中。第2小题的正确的答案为选项D。因为本题是按部门进行分组,ORDERBY子句的含义是对其后跟着的属性进行排序,故选项A和B均是错误的;GROUPBY子句就是对元组进行分组,保留字GROUPBY后面跟着一个分组属性列表。根据题意,要查询部门员工的平均工资,选项C显然是错误的。第3小题的正确的答案为选项C。因为WHERE语句是对表进行条件限定,所以选项A和B均是错误的。在GROUPBY子句后面跟一个HAVING子句可以对元组在分组前按照某种方式加上限制。COUNT(*)是某个关系中所有元组数目之和,但COUNT(A)却是A属性非空的元组个数之和。COUNT(DISTINCT(部门))的含义是对部门属性值相同的只统计1次。HAVINGCOUNT(DISTINCT(部门))语句分类统计的结果均为1,故选项D是错误的;HAVINGCOUNT(姓名)语句是分类统计各部门员工,故正确的答案为选项C。

问答题 案例分析题
多项选择题