โ Recursive CTEs
One of the most advanced and impressive SQL topics for interviews ๐ฏ
๐ง 1. What is a Recursive CTE?
A Recursive CTE is a CTE that refers to itself.
๐ Used for hierarchical or recursive data
Examples:
โ Employee-Manager hierarchy
โ Organization chart
โ Folder structure
โ Category trees
โก 2. Structure of Recursive CTE
A Recursive CTE has two parts:
1๏ธโฃ Anchor Query
Starting point
2๏ธโฃ Recursive Query
Repeats until condition is met
๐ฅ 3. Basic Example โ Generate Numbers 1 to 5
WITH RECURSIVE Numbers AS (
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM Numbers
WHERE num < 5
)
SELECT * FROM Numbers;
โ Output
num
1
2
3
4
5
๐ฅ 4. Employee Hierarchy Example
Employees Table
emp_id | name | manager_id
1 | CEO | NULL
2 | Amit | 1
3 | Neha | 2
4 | Ravi | 2
Recursive Query
WITH RECURSIVE EmployeeHierarchy AS (
SELECT
emp_id,
name,
manager_id,
1 AS level
FROM employees
WHERE manager_id IS NULL
UNION ALL
SELECT
e.emp_id,
e.name,
e.manager_id,
eh.level + 1
FROM employees e
JOIN EmployeeHierarchy eh
ON e.manager_id = eh.emp_id
)
SELECT * FROM EmployeeHierarchy;
๐ฏ 5. Real-World Uses
Organizational Charts
CEO โ Manager โ Employee
Product Categories
Electronics โ Laptop โ Gaming Laptop
Folder Structures
Root โ Folder โ Subfolder
โก 6. Important Rule
Every recursive CTE needs:
โ Anchor Query
โ Recursive Query
โ Stopping Condition
Without stopping condition โ Infinite loop
๐ฏ 7. Practice Tasks
1. Generate numbers 1โ10
2. Generate even numbers
3. Build employee hierarchy
4. Find reporting levels
5. Create category tree
โก Mini Challenge ๐ฅ
๐ Generate multiplication table of 5 (5 to 50) using Recursive CTE
Example:
5
10
15
20
...
50
Most asked question:
๐ Difference between CTE and Recursive CTE?
โ CTE = Temporary result set
โ Recursive CTE = Temporary result set that references itself
Double Tap โค๏ธ For More