问题
单项选择题
(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短语同时使用。