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.
Option A is the Answer
No man!!! Did you tested it? You can put HAVING clause before GROUP BY. It works.
Option C is wrong
Why is Option C correct?
Does this mean it is ok for HAVING clause to come before GROUP BY clause?
C is correct please see oracle fundamental 1 exam guide page 296
To quote: “The HAVING clause can occur before the GROUP BY clause in the
SELECT statement. However, it is more common to place the HAVING clause after
the GROUP BY clause. All grouping is performed and group functions are executed
prior to evaluating the HAVING clause.”
thanks sampath
Is this the correct website?
la respuesta correcta es la a . La clausula having siempre va despues del group by.