问题
单项选择题
(31)到(35)题使用下列数据表。 “仓库”表 仓库号 所在地 WH2北京 WH2上海 WH3广州 WH4天津 “职工”表 职工号 仓库号 工资 E1WH1 2100 E2WH2 1500 E3WH3 1350 E4WH1 1850 E5WH3 1900 E6WH1 2000 E7WH4 1450 E8WH2 1200 E9WH1 1600 |
求至少有4个职工的每个仓库的工资总和( )。
A.SELECT 仓库号,COUNT(*),SUM(工资) FROM 职工; WHERE COUNT(*)>=4
B.SELECT 仓库号,COUNT(*),SUM(工资) FROM 职工; GROUP BY 仓库号 SET COUNT(*)>=4
C.SELECT 仓库号,COUNT(*),SUM(工资) FROM 职工; GROUP BY 仓库号 HAVING COUNT(*)>=4
D.SELECT 仓库号,COUNT(*),SUM(工资) FROM 职工; GROUP BY 仓库号 WHERE COUNT(*)>=4
答案
参考答案:C
解析: 本题中首先通过GROUP BY短语对表记录按“仓库号”字段分组,然后通过Count()函数统计每个组中所包含的记录数,即每个仓库中共有多少名职工,利用SUM()函数求每个仓库中职工的工资总和;最后限定输出仓库中至少有4名职工的记录,输出结果包括“仓库号”、统计的仓库人数和该仓库的职工工资总和。 在分组与计算查询语句中,使用HAVING子句可以对分组进一步加以控制。用这个子句定义这些组所必须满足的条件,以便将其包含在结果中,HAVING子句必须与GROUP BY短语同时使用。