Database Interview Questions and Answers on “Aggregate Functions and Nested Subqueries – 2”.
1.
SELECT dept_name, ID, avg (salary) FROM instructor GROUP BY dept_name; This statement IS erroneous because
a) Avg(salary) should not be selected
b) Dept_id should not be used in group by clause
c) Misplaced group by clause
d) Group by clause is not valid in this query
Answer: b
Clarification: Any attribute that is not present in the group by clause must appear only inside an aggregate function if it appears in the select clause, otherwise the query is treated as erroneous.
2. SQL applies predicates in the _______ clause after groups have been formed, so aggregate functions may be used.
a) Group by
b) With
c) Where
d) Having
Answer: b
Clarification: The with clause provides away of defining a temporary relation whose definition is available only to the query in which the with clause occurs.
3. Aggregate functions can be used in the select list or the_______clause of a select statement or subquery. They cannot be used in a ______ clause.
a) Where, having
b) Having, where
c) Group by, having
d) Group by, where
Answer: b
Clarification: To include aggregate functions having clause must be included after where.
4. The ________ keyword is used to access attributes of preceding tables or subqueries in the from clause.
a) In
b) Lateral
c) Having
d) With
Answer: b
Clarification:
Eg : SELECT name, salary, avg salary FROM instructor I1, lateral (SELECT avg(salary) AS avg salary FROM instructor I2 WHERE I2.dept name= I1.dept name);
Without the lateral clause, the subquery cannot access the correlation variable
I1 from the outer query.
5. Which of the following creates a temporary relation for the query on which it is defined?
a) With
b) From
c) Where
d) Select
Answer: a
Clarification: The with clause provides a way of defining a temporary relation whose definition is available only to the query in which the with clause occurs.
6.
WITH max_budget (VALUE) AS (SELECT MAX(budget) FROM department) SELECT budget FROM department, max_budget WHERE department.budget = MAX budget.value;
In the query given above which one of the following is a temporary relation?
a) Budget
b) Department
c) Value
d) Max_budget
Answer: d
Clarification: With clause creates a temporary relation.
7. Subqueries cannot:
a) Use group by or group functions
b) Retrieve data from a table different from the one in the outer query
c) Join tables
d) Appear in select, update, delete, insert statements.
Answer: c
Clarification: None.
8. Which of the following is not an aggregate function?
a) Avg
b) Sum
c) With
d) Min
Answer: c
Clarification: With is used to create temporary relation and its not an aggregate function.
9. The EXISTS keyword will be true if:
a) Any row in the subquery meets the condition only
b) All rows in the subquery fail the condition only
c) Both of these two conditions are met
d) Neither of these two conditions is met
Answer: a
Clarification: EXISTS keyword checks for existance of a condition.
10. How can you find rows that do not match some specified condition?
a) EXISTS
b) Double use of NOT EXISTS
c) NOT EXISTS
d) None of the mentioned
Answer: b