问题 单项选择题

某供应商数据库中的供应关系为SPJ(供应商号,零件号,工担号,数量),如下命令查询某工程至少用了3家供应商(包含3家)供应的零件的平均数量,并按工程号的降序排列。

SELECT工程号, (59) FROM SPJ

GROUP BY工程号 (60)

ORDER BY工程号DESC;

(60)应选入()。

A.HAVING COUNT (DISTINCT(供应商号))>2

B.Where COUNT(供应商号)>2

C.HAVING(DISTINCT(供应商号))>2

D.Where 供应商号>2试题(14)(15)分析

答案

参考答案:A

解析:

[分析]: 本题考查SQL语言。

试题(14)正确的答案是选项B,因为SQL提供可为关系和属性重新命名的机制,这是通过使用具有如下形式的as子句来实现的。

Old-name as new-name

as子句即可出现在select子句,也可出现在from子句中。显然选项B满足上述规则。

试题(15)正确的答案是选项A,因为根据题意“某工程至少用了3家供应商(包含3家)供应的零件”,应该按照工程号分组,而且应该加上条件供应商的数目。但是需要注意的是,一个工程项目可能用了同一个供应商的多种零件,因此,在统计供应商数的时候需要加上DISTINCT,以避免重复统计导致错误的结果。

假如按工程号JNO=’J1’分组,结果如下表所示。

表1 按工程号JNO=’J1’分组

从上表可以看出,如果不加DISTINCT,统计的数为7;而加了DISTINCT,统计的数是5。

 

填空题
单项选择题