Subqueries & CTEs in SQL
From the SQL cheat sheet ยท Subqueries & CTEs ยท verified Jul 2026
Subqueries & CTEs
Write nested queries and reusable named expressions.
sql
-- Subquery in WHERE
SELECT * FROM products
WHERE price > (SELECT AVG(price) FROM products);
-- EXISTS
SELECT * FROM customers c
WHERE EXISTS (
SELECT 1 FROM orders o WHERE o.customer_id = c.id
);
-- CTE (Common Table Expression)
WITH active_users AS (
SELECT * FROM users WHERE status = 'active'
)
SELECT * FROM active_users WHERE age > 25;๐ก CTEs make complex queries readable โ define named blocks with WITH, then reference them
โก EXISTS is often faster than IN for large subqueries โ it stops at the first match
๐ Correlated subqueries run once per outer row โ they can be slow on large tables
๐ข Recursive CTEs are the standard way to query hierarchical data (org charts, categories)
subqueriescteexistsrecursive
Continue with SQL
Save the full cheat sheet or work through every related task.