DAX의 부모-자식 계층에 대한 함수 이해

DAX는 해당 모델에서 부모-자식 계층으로 제공되는 데이터를 관리할 수 있도록 다섯 가지 함수를 제공합니다. 이러한 함수를 사용하면 행에 포함된 부모 항목의 전체 계보를 가져올 수 있으며, 최상위 항목에 대한 계보가 포함된 수준 수, 현재 행에서 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 함수(DAX)

가장 오래되었거나 가장 위에 있는 항목부터 시작하여 현재 항목까지 현재 행에 대한 모든 부모 항목의 식별자가 포함된 구분된 텍스트를 반환합니다.

다음 예에서 'Path' 열은 '=PATH(EmployeeKey, ParentEmployeeKey)'로 정의됩니다.

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 함수(DAX)

현재 수준에서 시작하여 가장 오래되었거나 가장 위에 있는 부모 수준까지 제공된 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 함수(DAX)

왼쪽부터 오른쪽의 순서로 PATH()와 비슷한 결과에서 지정된 위치에 있는 항목을 반환합니다.

다음 예에서 PathItem - 4th from left 열은 '=PATHITEM([Path], 4)'으로 정의됩니다. 이 예에서는 Path() 예의 동일 예제 데이터를 사용하여 Path 문자열에서 왼쪽부터 네 번째 위치에 있는 EmployeKey를 반환합니다.

EmployeeKey

ParentEmployeeKey

Path

PathItem - 4th from left

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 함수(DAX)

오른쪽부터 왼쪽의 순서로 PATH()와 비슷한 함수 결과에서 position에 있는 항목을 반환합니다.

다음 예에서 PathItemReverse - 3rd from right 열은 '=PATHITEMREVERSE([Path], 3)'로 정의됩니다. 이 예에서는 Path() 예의 동일 예제 데이터를 사용하여 Path 문자열에서 오른쪽부터 세 번째 위치에 있는 EmployeKey를 반환합니다.

EmployeeKey

ParentEmployeeKey

Path

PathItemReverse - 3rd from right

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 함수(DAX)

지정된 item이 지정된 path 내에 있는 경우 TRUE를 반환합니다.

다음 예에서 PathContains - employee 162 열은 '=PATHCONTAINS([Path], "162")'로 정의됩니다. 이 예에서는 지정된 경로에 직원 162가 포함된 경우 TRUE를 반환합니다. 이 예에서는 위의 Path() 예에서 가져온 결과가 사용됩니다.

EmployeeKey

ParentEmployeeKey

Path

PathContains - employee 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

주의 사항주의

SQL Server 2012 Analysis Services에서 xVelocity 메모리 내 엔진(VertiPaq)은 부모-자식 계층에 대한 정의를 지원하지 않습니다. 하지만 DAX 언어는 사용자가 부모-자식 계층을 탐색하고 이러한 계층을 수식에 사용할 수 있도록 하는 일련의 함수를 제공합니다.