OCP 1Z0 051 119

119. Examine the data in the ORD_ITEMS table: 
ORD_NO ITEM_NO    QTY
1 111 10
1 222 20
1 333 30
2 333 30
2 444 40
3 111 40
Evaluate the following query:  
SQL>SELECT item_no, AVG(qty) 
FROM ord_items 
HAVING AVG(qty) > MIN(qty) * 2 
GROUP BY item_no; 
Which statement is true regarding the outcome of the above query? 
A. It gives an error because the HAVING clause should be specified after the GROUP BY clause. 
B. It gives an error because all the aggregate functions used in the HAVING clause must be specified in 
the SELECT list. 
C. It displays the item nos with their average quantity where the average quantity is more than double the 
minimum quantity of that item in the table. 
D. It displays the item nos with their average quantity where the average quantity is more than double the 
overall minimum quantity of all the items in the table. 

hainvg 放group by 前与放group by 后都可以
SQL> SELECT item_no, AVG(qty)
  2    FROM ord_items
  3  HAVING AVG(qty) > MIN(qty) * 2
  4   GROUP BY item_no;
   ITEM_NO   AVG(QTY)
---------- ----------
       111         25
1 row selected
Executed in 0.015 seconds
SQL> SELECT item_no, AVG(qty)
  2    FROM ord_items
  3   GROUP BY item_no
  4  HAVING AVG(qty) > MIN(qty) * 2;
   ITEM_NO   AVG(QTY)
---------- ----------
       111         25
1 row selected

该语句相当于
SQL> SELECT item_no, avg_qty
  2    FROM (SELECT item_no, AVG(qty) AS avg_qty, MIN(qty) * 2 AS min_qty
  3            FROM ord_items
  4           GROUP BY item_no)
  5   WHERE avg_qty > min_qty;
   ITEM_NO    AVG_QTY
---------- ----------
       111         25
1 row selected

要注意Where语句只能放group by 之前
SQL> SELECT item_no, AVG(qty) FROM ord_items WHERE qty > 0 GROUP BY item_no;
   ITEM_NO   AVG(QTY)
---------- ----------
       222         20
       444         40
       333         30
       111         25
4 rows selected
Executed in 0.031 seconds
SQL> SELECT item_no, AVG(qty) FROM ord_items GROUP BY item_no WHERE qty > 0;
SELECT item_no, AVG(qty) FROM ord_items GROUP BY item_no WHERE qty > 0
ORA-00933: SQL 命令未正确结束


Answer: C 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值