用SQL语言检索商品种类大于等于2的部门名称及部门的商品数目,并按商品种类的数目降序排序,正确的命令是______。
A.SELECT COUNT(商品.商品号) As 商品数目,部门名称;
FROM 部门,商品;
WHERE 部门.部门号:商品.部门号;
GROUP BY 部门名称;
HAVING 商品数目>=2;
ORDER BY 商品数目 DESC
B.SELECT COUNT(商品.商品号) As 商品数目,部门名称;
FROM 部门,商品;
GROUP BY 部门名称;
HAVING 商品数目>=2 And 部门.部门号:商品.部门号;
ORDER BY 商品数目 DESC
C.SELECT COUNT(商品.商品号) As 商品数目,部门名称;
FROM 部门,商品;
GROUP BY 部门名称;
WHERE 商品数目>=2;
ORDER BY 商品数目 DESC
D.SELECT COUNT(商品.商品号) As 商品数目,部门名称;
FROM 部门,商品;
WHERE 部门.部门号:商品.部门号 And 商品数目>=2;
GROUP BY 部门名称;
ORDER BY 商品数目 DESC
参考答案:A
解析:[知识点] SQL的数据查询功能:聚集查询
[评析] Visual FoxPro的SELECT—SQL命令的一般语法格式如下:
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<基本表(或视图)>[,<基本表(或视图)>]…
[WHERE<条件表达式>]
[GROUP BY<列名1>[HAVING<内部函数表达式>]]
[ORDER BY<列名2>[ASC|DESC]];
说明:
① SELECT子句:ALL表示选出的记录中包括重复记录,这是缺省值;DISTINCT则表示选出的记录中不包括重复记录。
② FROM子句及其选项:用于指定查询的表,可以对单个表或多个表进行查询。
⑧ WHERE子句:说明查询条件,即筛选元组的条件。
④ GROUP BY子句;对记录按<列名1>值分组,常用于分组统计。
⑤ HAVING子句:当含有GROUP BY子句时,HAVING子句可用作记录查询的限制条件:无GROUP BY子句时HAVING子句的作用如同WHERE子句。
⑥ ORDER BY子句:指定查询结果中记录按<列名2>排序,默认升序。选项ASC表示升序,DESC表示降序。在本题中,首先要查出各个部门的商品的种类,就要以部门名称对商品号进行COUNT聚集查询。然后根据聚集查询的结果用HAVING子句进行筛选,最后利用ORDER BY子句进行排序。在查询语句中,WHERE子句用来实现两个表的连接。