OCP-1Z0-051 第148题 子查询和ANY,ALL的使用

一、原题
View the Exhibit and examine the structure of the PRODUCTS tables.

You want to generate a report that displays the average list price of product categories where the average list price is less than half the maximum in each category.
Which query would give the correct output?
A.SELECT prod_category, avg(prod_list_price)
    FROM products
   GROUP BY prod_category
  HAVING avg(prod_list_price) < ALL (SELECT max(prod_list_price) / 2
                                      FROM products
                                      GROUP BY prod_category);

B.SELECT prod_category, avg(prod_list_price)
    FROM products
   GROUP BY prod_category
  HAVING avg(prod_list_price) > ANY (SELECT max(prod_list_price) / 2
                                       FROM products
                                      GROUP BY prod_category);

C.SELECT prod_category, avg(prod_list_price)
    FROM products
  HAVING avg(prod_list_price) < ALL (SELECT max(prod_list_price) / 2
                                       FROM products
                                      GROUP BY prod_category);

D.SELECT prod_category, avg(prod_list_price)
    FROM products
   GROUP BY prod_category
  HAVING avg(prod_list_price) > ANY (SELECT max(prod_list_price) / 2
                                       FROM products);

答案:A

二、题目翻译
查询PRODUCTS表的结构,
要生成一个报表,显示 平均价格小于每一个category最大值的一半 的product categories的平均价格。
哪一个查询给出正确结果?

三、题目解析
A选项正确,<ALL,小于列表中的最小的.
B选项不正确,> ANY表示大于列表中的最小值,不符合题目的要求。
C选项不正确,主查询没有使用GROUP BY子句,却使用了HAVING子句,会报错。
D选项不正确,> ANY表示大于列表中的最小值,并用any值列表子查询中,没分组,只有一个值,不符合题目的要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值