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