某供应商数据库中供应关系为SPJ(供应商号,零件号,工担号,数量),如下命令查询某工程至少用了3家供应商(包含3家)供应零件平均数量,并按工程号降序排列。
SELECT工程号,( )FROM SPJ GROUP BY工程号(请作答此空)ORDER BY工程号DESC;
- A.HAVING COUNT (DISTINCT(供应商号))>2
- B.Where COUNT(供应商号)>2
- C.HAVING(DISTINCT(供应商号))>2
- D.When COUNT(供应商号)>2
正确答案及解析
正确答案
A
解析
因为根据题意"某工程至少用了3家供应商(包含3家)供应零件",应该按照工程号分组,而且应该加上条件供应商数目。但是需要注意是,一个工程项目可能用了同一个供应商多种零件,因此,在统计供应商数时候需要加上DISTINCT,以避免重复统计导致错误结果。
假如按工程号JNO='J1'分组,结果如下表所示。
表1 按工程号JNO='J1'分组

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





