OCP-1Z0-051-V9.02-116题

116. 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

You want to find out if there is any item in the table for which the average maximum quantity is more than

50.

You issue the following query: 

SQL> SELECT AVG(MAX(qty))

FROM ord_items

GROUP BY item_no

HAVING AVG(MAX(qty))>50;

Which statement is true regarding the outcome of this query?

A. It executes successfully and gives the correct output.

B. It gives an error because the HAVING clause is not valid. 

C. It executes successfully but does not give the correct output.

D. It gives an error because the GROUP BY expression is not valid.

 

Answer: B

答案解析:

 

sh@TESTDB> select * from ord_items;
 
    ORD_NO    ITEM_NO        QTY
---------- ---------- ----------
         1        111         10
         1        222         20
         1        333         30
         2        333         30
         2        444         40
         3        111         40
 
6 rows selected.
 
sh@TESTDB> select max(qty) from ord_items group by item_no;
 
  MAX(QTY)
----------
        40
        20
        30
        40
 
sh@TESTDB> select avg(max(qty)) from ord_items group by item_no;
 
AVG(MAX(QTY))
-------------
         32.5
 

 

sh@TESTDB> select avg(max(qty)) from ord_items group by item_no having avg(max(qty))>50;
select avg(max(qty)) from ord_items group by item_no having avg(max(qty))>50
                                                                *
ERROR at line 1:
ORA-00935: group function is nested too deeply
 
 HAVING子句后面不能有好几个组函数嵌套,只能使用一个组函数。
 

 

你可能感兴趣的:(OCP-1Z0-051-V9.02-116题)