一、原题
二、题目翻译
三、题目解析
View the Exhibit and examine the structure of the PRODUCTS table.

You want to display the category with the maximum number of items.
You issue the following query:
SQL>SELECT COUNT(*), prod_category_id
FROM products
GROUP BY prod_category_id
HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM products);
What is the outcome?
A. It executes successfully and gives the correct output.
B. It executes successfully but does not give the correct output.
C. It generates an error because the subquery does not have a GROUP BY clause.
D. It generates an error because = is not valid and should be replaced by the IN operator.
答案:C
You want to display the category with the maximum number of items.
You issue the following query:
SQL>SELECT COUNT(*), prod_category_id
FROM products
GROUP BY prod_category_id
HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM products);
What is the outcome?
A. It executes successfully and gives the correct output.
B. It executes successfully but does not give the correct output.
C. It generates an error because the subquery does not have a GROUP BY clause.
D. It generates an error because = is not valid and should be replaced by the IN operator.
答案:C
二、题目翻译
看下面PRODUCTS表的结构
要显示产品数据最多的产品的类别.
执行下面的语句
执行结果是什么?
A.执行成功,并且能得出正确结果。
B.执行成功,但不能得出正确结果。
C.报错,因为子查询没有GROUP BY子句。
D.报错,因为=是无效的,应该使用IN操作符替换。
要显示产品数据最多的产品的类别.
执行下面的语句
执行结果是什么?
A.执行成功,并且能得出正确结果。
B.执行成功,但不能得出正确结果。
C.报错,因为子查询没有GROUP BY子句。
D.报错,因为=是无效的,应该使用IN操作符替换。
三、题目解析
子查询中,因为没有group by 子句,count后的结果就只有一条记录了,再用max,就没意义了,所以报错。