시작하기무료로 시작하기

BMW를 조립해 볼까요?

이 연습 문제에서 다음 질문에 답해 보겠습니다. 계층 구조에서 레벨 3까지 자동차를 조립하려면 각 부품의 총 필요 수량 Total은 얼마인가요?

여러분의 작업은 구성 요소의 레벨을 추적하고 Total 필드에서 구성 요소의 총 수량을 계산하기 위한 CTE construction_Plan을 만드는 것입니다. 이 테이블은 PartID, SubPartID, Level, Component, Total 필드로 구성되어 있습니다. 레벨 1부터 레벨 3까지의 모든 구성 요소를 고려해야 합니다.

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

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

강의 보기

연습 안내

  • 필요한 필드로 construction_Plan을 정의하세요.
  • CTE의 앵커 요소에서 TotalQuantity로 초기화하세요.
  • 재귀 요소에서 하위 요소의 QuantityTotal에 누적하세요.
  • 계층의 ID를 기준으로 집계된 정보에서 Total의 합을 만들기 위해 SUM()을 사용하세요.

실습형 인터랙티브 연습

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

-- Define CTE with the fields: PartID, SubPartID, Level, Component, Total
WITH ___ (___, ___, ___, ___, ___) AS (
	SELECT 
  		PartID,SubPartID,
  		0,
  		Component,
  		-- Initialize Total
  		___
	FROM partList
	WHERE PartID = '1'
	UNION ALL
	SELECT 
		CHILD.PartID, CHILD.SubPartID,
  		PARENT.Level + 1,
  		CHILD.Component,
  		-- Increase Total by the quantity of the child element
  		PARENT.___ + CHILD.___
	FROM construction_Plan PARENT, partList CHILD
  	WHERE CHILD.SubPartID = PARENT.PartID
	  AND PARENT.Level < 3)
      
SELECT 
    PartID, SubPartID,Component,
    -- Calculate the sum of total on the aggregated information
    ___(___)
FROM construction_Plan
GROUP BY PartID, SubPartID, Component
ORDER BY PartID, SubPartID;
코드 편집 및 실행