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

admin2008-08-01  37

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

选项 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’分组,结果如下表所示。

从上表可以看出,如果不加DISTINCT,统计的数为7;而加了DISTINCT,统计的数是5。
转载请注明原文地址:https://jikaoti.com/ti/ITB7FFFM
0

随机试题
最新回复(0)