Lesson 8: Subqueries

30 min read Intermediate Lesson 8 of 12 9.8k learners

What are Subqueries?

A subquery (or nested query) is a query inside another SQL query. Subqueries are often used inside WHERE, FROM, or SELECT clauses.

Single-row Subquery

Returns a single value, often used with comparison operators (=, <, >).

SQL
SELECT first_name, salary
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

Multi-row Subquery

Returns multiple values, often used with IN, ANY, ALL.

SQL
SELECT first_name, department_id
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location_id = 1700);

Correlated Subquery

A subquery that depends on the outer query for values. It is executed once per row of the outer query.

SQL
SELECT e.first_name, e.salary
FROM employees e
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
    WHERE department_id = e.department_id
);

Practice Quiz

Test your understanding of subqueries:

1. Where can a subquery be placed?
2. Which operator is used with multi-row subqueries?
3. What does a correlated subquery do?
4. Which of these is a single-row subquery?
5. Which clause allows subqueries to return derived tables?