계층 위치 알아내기
재귀를 사용할 때 중요한 문제 중 하나는 재귀 단계(level)를 추적하는 일입니다. IT 조직에서는 각 직원이 계층 구조에서 어느 위치에 있는지 기록하는 것을 의미해요.

이를 위해 현재 재귀 단계를 추적하는 LEVEL 필드를 사용합니다. 앵커 멤버에서 이 필드를 도입하고, 재귀 멤버에서는 재귀가 한 단계 진행될 때마다 이 값을 증가시켜야 해요.
첫 번째 계층 레벨은 0, 두 번째 레벨은 1이라는 점을 기억해 주세요.
이 연습은 강의의 일부입니다
SQL Server에서의 계층형 및 재귀 쿼리
연습 안내
- 재귀 시작 시
LEVEL필드를 1로 초기화하세요. - CTE의 초기 단계로 IT director 정보를 선택하기 위해
Supervisor로 필터링하세요. - 현재 재귀 단계에 맞게
LEVEL을 설정하세요. - 상사와 직원의
ID를 기준으로 정의한 CTE와JOIN을 수행하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
WITH employee_hierarchy AS (
SELECT
ID,
NAME,
Supervisor,
-- Initialize the field LEVEL
___ as LEVEL
FROM employee
-- Start with the supervisor ID of the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor,
-- Increment LEVEL by 1 each step
___ + 1
FROM employee emp
JOIN employee_hierarchy
-- JOIN on supervisor and ID
ON emp.___ = employee_hierarchy.___)
SELECT
cte.Name, cte.Level,
emp.Name as ManagerID
FROM employee_hierarchy as cte
JOIN employee as emp
ON cte.Supervisor = emp.ID
ORDER BY Level;