시작하기무료로 시작하기

당신의 매니저는 누구인가요?

이번 연습에서는 IT 조직의 데이터를 담은 employee 테이블을 사용합니다. 이 테이블에는 ID(직원의 ID), Name(직원 이름), Supervisor(상사의 ID) 필드가 있습니다.

이 IT 조직은 여러 역할과 레벨로 구성되어 있어요.

A section of the entire hierarchy

이 조직에는 한 명의 IT 디렉터가 있습니다(ID=1, Heinz Griesser, Supervisor=0). 이 디렉터 아래에 많은 하위 직원이 있어요. IT 디렉터 아래에는 IT 아키텍처 매니저가 있습니다(ID=10, Andreas Sternig, Supervisor=1). 이 매니저에게는 세 명의 하위 직원이 있습니다. Andreas Sternig의 경우 Supervisor=1이며, 이는 IT 디렉터의 ID입니다.

먼저 이런 질문에 답해 보겠습니다: 각 직원의 상사는 누구인가요?

이 문제는 재귀적으로 데이터를 조회하여 해결할 거예요.

이 연습은 강의의 일부입니다

SQL Server에서의 계층형 및 재귀 쿼리

강의 보기

연습 안내

  • 이름이 employee_hierarchy인 CTE를 생성하세요.
  • CTE의 초기 단계로 IT 디렉터의 정보를 선택하되, 그의 Supervisor ID로 필터링하세요.
  • 매니저의 이름을 얻기 위해 employee와 조인을 수행하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- Create the CTE employee_hierarchy
WITH ___ AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor
	FROM employee
  	-- Start with the IT Director
	WHERE ___ = ___
	UNION ALL
	SELECT 
  		emp.ID,
  		emp.NAME,
  		emp.Supervisor
	FROM employee emp
  		JOIN employee_hierarchy
  		ON emp.Supervisor = employee_hierarchy.ID)
    
SELECT 
    cte.Name as EmployeeName,
    emp.Name as ManagerName
FROM employee_hierarchy as cte
	JOIN employee as emp
	-- Perform the JOIN on Supervisor and ID
	ON cte.___ = emp.___;
코드 편집 및 실행