A subquery is a query written inside another query. It helps to get data that will be used by the main query.
Click to reveal answer
beginner
How does a nested query differ from a simple query?
A nested query is a query inside another query, while a simple query stands alone without any inner queries.
Click to reveal answer
intermediate
Can subqueries return multiple rows or columns?
Yes, subqueries can return one or many rows and columns depending on how they are written and used.
Click to reveal answer
intermediate
Where can subqueries be used in SQL statements?
Subqueries can be used in SELECT, WHERE, FROM, and HAVING clauses to filter, calculate, or join data.
Click to reveal answer
advanced
What is the difference between correlated and non-correlated subqueries?
A correlated subquery depends on the outer query for its values and runs once per row, while a non-correlated subquery runs independently once.
Click to reveal answer
What is a subquery in SQL?
AA query that updates data
BA query inside another query
CA query that deletes tables
DA query that creates indexes
✗ Incorrect
A subquery is a query written inside another query to help filter or calculate data.
Where can subqueries be used in SQL?
AOnly in SELECT clause
BOnly in WHERE clause
CIn SELECT, WHERE, FROM, and HAVING clauses
DOnly in CREATE statements
✗ Incorrect
Subqueries can be used in multiple clauses like SELECT, WHERE, FROM, and HAVING.
What does a correlated subquery depend on?
AIt depends on the user input
BIt runs independently
CIt depends on the database engine
DIt depends on the outer query
✗ Incorrect
A correlated subquery uses values from the outer query and runs once per row.
Can subqueries return multiple rows?
AYes, they can return multiple rows
BThey return no rows
COnly one column
DNo, only one row
✗ Incorrect
Subqueries can return one or many rows depending on their design.
What is a nested query?
AA query inside another query
BA query that deletes data
CA query that creates tables
DA query that runs outside the database
✗ Incorrect
A nested query is simply a query inside another query.
Explain what a subquery is and give an example of where it might be used.
Think about how one query can help another by providing data.
You got /2 concepts.
Describe the difference between correlated and non-correlated subqueries.
Consider if the subquery depends on the outer query or not.
You got /3 concepts.
Practice
(1/5)
1. What is a subquery in a database query?
easy
A. A query nested inside another query
B. A query that updates data
C. A query that deletes tables
D. A query that creates indexes
Solution
Step 1: Understand the definition of subquery
A subquery is a query written inside another query to help filter or calculate data.
Step 2: Identify the correct description
Among the options, only "A query nested inside another query" matches the definition of a subquery.
Final Answer:
A query nested inside another query -> Option A
Quick Check:
Subquery = Nested query [OK]
Hint: Subquery means query inside another query [OK]
Common Mistakes:
Confusing subquery with update or delete operations
Thinking subquery creates indexes
Mixing subquery with table creation
2. Which of the following is the correct syntax to use a subquery in the WHERE clause?
easy
A. SELECT * FROM table WHERE column = (SELECT value FROM other_table);
B. SELECT * FROM table WHERE SELECT value FROM other_table = column;
C. SELECT * FROM table WHERE column IN SELECT value FROM other_table;
D. SELECT * FROM table WHERE column = SELECT value FROM other_table;
Solution
Step 1: Review correct subquery syntax in WHERE clause
The subquery must be enclosed in parentheses and used as a value to compare with a column.
Step 2: Check each option
SELECT * FROM table WHERE column = (SELECT value FROM other_table); correctly uses parentheses around the subquery. Options A, B, and D have syntax errors or missing parentheses.
Final Answer:
SELECT * FROM table WHERE column = (SELECT value FROM other_table); -> Option A
Quick Check:
Subquery in WHERE uses parentheses [OK]
Hint: Subquery in WHERE must be inside parentheses [OK]
Common Mistakes:
Omitting parentheses around subquery
Placing subquery before column
Using IN without parentheses
3. Consider the tables: Employees(emp_id, name, dept_id) Departments(dept_id, dept_name) What does this query return?
SELECT name FROM Employees WHERE dept_id = (SELECT dept_id FROM Departments WHERE dept_name = 'Sales');
medium
A. Names of employees who do not work in Sales
B. Names of all employees regardless of department
C. Names of employees who work in the Sales department
D. Department names of all employees
Solution
Step 1: Understand the subquery
The subquery finds the dept_id for the department named 'Sales'.
Step 2: Apply the subquery result in the main query
The main query selects employee names whose dept_id matches the Sales dept_id.
Final Answer:
Names of employees who work in the Sales department -> Option C
Quick Check:
Subquery filters Sales dept_id, main query filters employees [OK]
Hint: Subquery finds Sales dept_id, main query filters employees [OK]
Common Mistakes:
Thinking it returns all employees
Confusing employee names with department names
Ignoring subquery filtering
4. Identify the error in this query:
SELECT name FROM Employees WHERE dept_id = SELECT dept_id FROM Departments WHERE dept_name = 'HR';
medium
A. Wrong table name used
B. Missing parentheses around the subquery
C. Using = instead of IN
D. Missing WHERE clause in subquery
Solution
Step 1: Check subquery syntax
The subquery must be enclosed in parentheses when used in WHERE clause comparisons.
Step 2: Identify the error in the query
The query misses parentheses around the subquery, causing a syntax error.
Final Answer:
Missing parentheses around the subquery -> Option B
Quick Check:
Subquery needs parentheses [OK]
Hint: Always put subqueries in parentheses [OK]
Common Mistakes:
Omitting parentheses
Confusing = with IN unnecessarily
Incorrect table names
5. You want to find all employees who earn more than the average salary in their department. Which query correctly uses a subquery to achieve this?
hard
A. SELECT emp_name FROM Employees WHERE salary > (SELECT MAX(salary) FROM Employees);
B. SELECT emp_name FROM Employees WHERE salary > AVG(salary);
C. SELECT emp_name FROM Employees WHERE salary > (SELECT salary FROM Employees);
D. SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id);
Solution
Step 1: Understand the requirement
We need to compare each employee's salary to the average salary of their own department.
Step 2: Analyze each option
SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id); uses a correlated subquery that calculates the average salary for the employee's department. Options A, B, and C do not correctly calculate the average per department or use wrong aggregates.
Final Answer:
SELECT emp_name FROM Employees WHERE salary > (SELECT AVG(salary) FROM Employees WHERE dept_id = Employees.dept_id); -> Option D
Quick Check:
Correlated subquery compares salary to dept average [OK]
Hint: Use correlated subquery with dept_id to get average salary [OK]
Common Mistakes:
Using global average instead of per department
Using MAX instead of AVG
Not correlating subquery with outer query
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.