🧠 Day 9: Mastering SQL Subqueries & CTE (Common Table Expressions)
🧠 Day 9: Mastering SQL Subqueries & CTE (Common Table Expressions)
🔍 What is a Subquery?
A subquery is a query written inside another query.
It helps to fetch results dynamically based on conditions derived from another query.
📘 Definition:
A query within another query is called a Subquery.
📂 Types of Subqueries
| Type | Description |
|---|---|
| 1️⃣ Single Row Subquery | Returns a single column and single value. |
| 2️⃣ Multiple Column Subquery | Returns multiple columns from a table. |
| 3️⃣ Inline View Subquery | A subquery written inside the FROM clause. |
| 4️⃣ Scalar Subquery | A subquery written inside the SELECT clause. |
| 5️⃣ Nested Subquery | A subquery written inside the WHERE clause. |
| 6️⃣ Correlated Subquery | Inner query depends on the outer query. |
⚙️ Execution Order
-
For most subqueries:
➤ Inner query executes first, then outer query. -
For correlated subqueries:
➤ Outer query executes first, then inner query runs for each row.
🧩 1. Single Row Subquery
Fetch the employee with the highest salary.
🧩 2. Multiple Column Subquery
Find employees earning the maximum salary in each department.
🧩 3. Inline View Subquery
A query inside the FROM clause acts like a temporary table.
🧩 4. Scalar Subquery
A query inside the SELECT clause returns a single value.
🧩 5. Correlated Subquery
Inner query depends on the outer query.
Executed once per row of the outer query.
🧩 6. Nth Max Salary (Department-wise)
Using DENSE_RANK():
🧠 What is a CTE (Common Table Expression)?
A CTE creates a temporary result set that can be referenced within a SELECT, INSERT, UPDATE, or DELETE statement.
Syntax:
💡 Example: Basic CTE
💎 Find Nth Max Salary Using CTE
✅ Key Takeaways
-
Subqueries make SQL more dynamic and modular.
-
Correlated subqueries are useful but can be performance heavy.
-
CTEs improve readability and reusability of complex queries.
-
Use window functions like
RANK()andDENSE_RANK()for ranking problems.