Hierarchy

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

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

구문:  

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

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

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

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

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

인수:  

인수 설명
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

];

결과:

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

참조 항목: