기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

Hierarchy

hierarchy 접두사는 부모-자식 계층 구조 테이블을 QlikView 데이터 모델에서 유용한 테이블로 변환하는 데 사용됩니다. 이 접두사는 LOAD 또는 SELECT 문 앞에 넣을 수 있으며 로드 문의 결과를 입력으로 사용하여 테이블 변환을 수행합니다.

이 접두사를 사용하면 일반적으로 입력 테이블과 같은 수의 레코드를 포함하지만 추가로 계층 구조의 각 수준을 별도의 필드에 저장하는 확장 노드 테이블이 생성됩니다. 경로 필드는 트리 구조에서 사용할 수 있습니다.

구문:  

Hierarchy (NodeID, ParentID, NodeName, [ParentName, [ParentSource, [PathName, [PathDelimiter, Depth]]]])(loadstatement | selectstatement) 

입력 테이블은 인접 노드 테이블이어야 합니다. 인접 노드 테이블이란 각 레코드가 한 노드에 해당하고 부모 노드에 대한 참조를 포함하는 필드를 가지는 테이블입니다. 이러한 테이블에서 노드는 한 레코드에만 저장되지만 노드가 가질 수 있는 자식의 수에는 제한이 없습니다. 물론 테이블은 노드의 특성을 나타내는 추가 필드를 포함할 수 있습니다.

일반적으로 입력 테이블은 정확하게 노드당 한 레코드를 가지며 이 경우 출력 테이블도 동일한 수의 레코드를 포함합니다. 그러나 입력 테이블에서 한 노드가 여러 레코드로 표시되는 경우, 즉 여러 부모를 가진 노드가 있을 수 있습니다. 이 경우 출력 테이블의 레코드 수가 입력 테이블보다 많을 수 있습니다.

노드 ID 열에 부모 ID가 없는 모든 노드(부모 ID가 누락된 노드 포함)는 루트로 간주됩니다. 또한 루트 노드와 직간접적으로 연결된 노드만 로드되므로 순환 참조를 피할 수 있습니다.

부모 노드의 이름, 노드의 경로, 그리고 노드의 깊이를 포함하는 추가 필드를 만들 수 있습니다.

인수:  

Hierarchy 인수
인수 설명
NodeID 노드 ID가 포함된 필드의 이름입니다. 이 필드는 입력 테이블에 존재해야 합니다.
ParentID 부모 노드의 노드 ID가 포함된 필드의 이름입니다. 이 필드는 입력 테이블에 존재해야 합니다.
NodeName 노드의 이름이 포함된 필드의 이름입니다. 이 필드는 입력 테이블에 존재해야 합니다.
ParentName ParentName 필드의 이름을 지정하기 위해 사용되는 문자열입니다. 생략된 경우 이 필드가 생성되지 않습니다.
ParentSource 노드 경로를 만드는 데 사용되는 노드의 이름이 포함된 필드의 이름입니다. 선택적인 매개 변수입니다. 생략된 경우 NodeName이 사용됩니다.
PathName Path 필드의 이름을 지정하는 데 사용되는 문자열로, 루트부터 해당 노드까지의 경로가 포함됩니다. 선택적인 매개 변수입니다. 생략된 경우 이 필드가 생성되지 않습니다.
PathDelimiter Path 필드에서 구분 기호로 사용되는 문자열입니다. 선택적인 매개 변수입니다. 생략된 경우 '/'가 사용됩니다.
Depth Depth 필드의 이름을 지정하는 데 사용되는 문자열로, 계층 구조에서 노드의 깊이가 포함됩니다. 선택적인 매개 변수입니다. 생략된 경우 이 필드가 생성되지 않습니다.

 

Hierarchy(NodeID, ParentID, NodeName, ParentName, NodeName, PathName, '\', Depth) LOAD * inline [

NodeID, ParentID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

결과:

예 1
NodeID NodeName ParentID ParentName NodeName1 NodeName2 NodeName3 PathName Depth
5 Europe   - Europe - - Europe 1
3 Germany 5 Europe Europe Germany - Europe\Germany 2
2 Munich 3 Germany Europe Germany Munich Europe\Germany\Munich 3
4 UK 5 Europe Europe UK - Europe\UK 2
1 London 4 UK Europe UK London Europe\UK\London 3

자세한 정보

 

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!

분석 현대화 프로그램에 참여

Remove banner from view

분석 현대화 프로그램으로 귀중한 QlikView 앱을 손상시키지 않고 현대화하십시오. 여기를 클릭 하여 자세한 내용을 참조하거나 다음에 연결하십시오. ampquestions@qlik.com