DAX에서 부모-자식 계층 구조에 대한 함수 이해

DAX는 사용자가 모델에서 부모-자식 계층 구조로 표시되는 데이터를 관리하는 데 도움이 되는 5가지 함수를 제공합니다. 이 함수를 사용하면 사용자가 행에 있는 부모의 전체 계보를 가져올 수 있으며, 현재 행 위의 부모 n-수준인 상위 부모에 대한 계보가 있는 수준은 몇 개입니까? 현재 행 계층 구조의 맨 위에서 n-하위 항목이며 특정 부모가 현재 행 계층의 부모인가요?

DAX의 부모-자식 함수

다음 표에는 모든 함수 예제에서 사용되는 EmployeeKeyParentEmployeeKey의 부모-자식 계층 구조가 포함되어 있습니다.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

위의 표에서 직원 112에는 부모가 정의되어 있지 않으며, 직원 14에는 관리자로 직원 112가 있고(ParentEmployeeKey), 직원 3에는 관리자로 직원 14, 직원 11, 13 및 162에는 직원 3이 관리자로 있는 것을 볼 수 있습니다. 위의 내용은 직원 112에게 그 이상의 관리자가 없으며 여기에 표시된 모든 직원의 최고 관리자임을 이해하는 데 도움이 됩니다. 또한 직원 3은 직원 14에게 보고하고 직원 11, 13, 162는 3으로 보고합니다.

다음 표에서는 사용 가능한 함수, 함수에 대한 간략한 설명 및 위에 표시된 동일한 데이터에 대한 함수의 예를 보여 줍니다.

PATH 함수 - 현재 행에 대한 모든 부모 식별자가 있는 구분된 텍스트를 반환합니다. 가장 오래된 텍스트나 맨 위부터 현재 행까지입니다.

EmployeeKey ParentEmployeeKey Path
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

PATHLENGTH 함수 - 지정된 PATH()의 수준 수를 반환하며, 현재 수준에서 가장 오래된 부모 수준 또는 최상위 상위 수준까지 시작합니다. 다음 예제 열에서 PathLength는 ''= PATHLENGTH([Path])으로 정의됩니다. 이 예제에는 이 함수의 작동 방식을 이해하는 데 도움이 되는 Path() 예제의 모든 데이터가 포함됩니다.

EmployeeKey ParentEmployeeKey Path PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

PATHITEM 함수 - PATH()에서 지정된 위치에 있는 항목을 결과와 같이 왼쪽에서 오른쪽으로 계산하여 반환합니다. 다음 예제 열 PathItem - 왼쪽에서 4번째는 ''= PATHITEM([Path], 4)로 정의됩니다. 이 예제에서는 Path() 예제에서 동일한 샘플 데이터를 사용하여 왼쪽의 Path 문자열에서 네 번째 위치에 있는 EmployeKey를 반환합니다.

EmployeeKey ParentEmployeeKey Path PathItem - 왼쪽에서 4번째
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

PATHITEMREVERSE 함수 - 함수 결과와 같은 PATH()의 위치에 있는 항목을 반환하며 오른쪽에서 왼쪽으로 뒤로 계산합니다.
다음 예제 열 PathItemReverse - 오른쪽의 3번째 열은 ''= PATHITEMREVERSE([Path], 3)으로 정의됩니다. 이 예제에서는 Path() 예제에서 동일한 샘플 데이터를 사용하여 오른쪽의 Path 문자열에서 세 번째 위치에 있는 EmployeKey를 반환합니다.

EmployeeKey ParentEmployeeKey Path PathItemReverse - 오른쪽에서 3번째
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

PATHCONTAINS 함수 - 지정된 항목이 지정된 경로 내에 있으면 TRUE반환합니다. 다음 예제 열 PathContains에서 직원 162는 ''= PATHCONTAINS([Path], "162")으로 정의됩니다. 이 예제에서는 지정된 경로에 직원 162가 포함된 경우 TRUE를 반환합니다. 이 예제에서는 위의 Path() 예제의 결과를 사용합니다.

EmployeeKey ParentEmployeeKey Path PathContains - 직원 162
112 112 FALSE
14 112 112|14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112|14|3|13 FALSE
162 3 112|14|3|162 TRUE
117 162 112|14|3|162|117 TRUE