(31)到(35)题使用下列数据表。 仓库(仓库号C(3)、所在地C(8)、人数N(2)) 职工(仓库号C(3)、职工号C(2)、姓名C(8)、工资I) |
检索最少有4名职工仓库的职工平均工资( )。
A.SELECT 仓库号,COLINT(*) AS 人数,AVG(工资) AS 平均工资 FROM 职工; GROUP BY 仓库号 WHERE COUNT(*)>=4
B.SELECT 仓库号,COUNT(*) AS 人数,AVG(工资) AS 平均工资 FROM 职工; GROUP BY 仓库号 HAVING COUNT(*)>=4
C.SELECT 仓库号,COUNT(*) AS 人数,AVG (工资) AS 平均工资 FROM 职工; GROUP BY 职工号 WHERE COUNT(*)>=4
D.SEIECT 仓库号,COUNT(*) AS 人数,AVG(工资) AS 平均工资 FROM 职工; GROUP BY 职工号 HAVING COUNT(*)>=4
参考答案:B
解析: 在分组与计算查询语句中,使用HAVING子句可以对分组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中,HAVING子句必须与GROUP BY短语同时使用。 本题中先由GROUP BY子句按“仓库号”对记录行进行分组:再执行COUNT()函数统计每组中有多少个记录,执行AVG()函数计算每个组的平均工资;最后执行HAVING子句,只有记录总数大于等于4的组才输出结果,即仓库职工在4名(含)以上的。注意:此时输出的组记录是计算后的记录,即每组只包含一条记录,输出信息包括该仓库的仓库号、人数和平均工资。