多选题 产品(PRODUCT)表的结构如下:
PRODUCT
PRODUCT_ID
NUMBER
NOT NULL, Primary Key
PRODUCT_NAME
VARCHAR2(25)
 
SUPPLIER_ID
NUMBER
Foreign key to SUPPLIER_ID of the SUPPLIER table
LIST_PRICE
NUMBER(7, 2)
 
COST
NUMBER(7, 2)
 
QTY_IN_STOCK
NUMBER
 
QTY_ON_ORDER
NUMBER
 
REORDER_LEVEL
NUMBER
 
REORDER_QTY
NUMBER
 
如果使用如下的SQL语句,哪个子句将会产生错误?
SELECT supplier_id,AVG(cost)
FROM product
WHERE AVG(list_price)>60.00
GROUP BY supplier_id
ORDER BY AVG(cost)DESC;
A.FROM
B.WHERE
C.GROUP BY
D.ORDER BY

【正确答案】 B
【答案解析】[解析] 这一题是测试对HAVING子句的理解。根据有关HAVING子句的介绍,可知WHERE子句不能用于限制分组函数,在Oracle中应该使用HAVING子句来限制分组函数,所以可以确定WHERE AVG(list_price)>60.00子句是错误的,即选项B是正确的。
在本题的SQL语句中,子句FROM product、GROUP BY supplier_id和ORDER BY AVG(cost)DESC都是正确的,所以选项A、C和D都不是本题的答案。