Общие сведения о функциях для иерархий родительского-дочернего элемента в DAX

DAX предоставляет пять функций, помогающих пользователям управлять данными, представленными как иерархия родительского-дочернего элемента в своих моделях. С помощью этих функций пользователь может получить всю строку происхождения родителей, сколько уровней имеет происхождение верхнего родителя, который является родительским n-уровнем над текущей строкой, который является n-потомком из верхней части текущей иерархии строк и является родительским родителем в текущей иерархии строк?

Родительские дочерние функции в DAX

В следующей таблице содержится иерархия Parent-Child в столбцах: 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 Путь
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 Путь 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)'; в этом примере возвращается значение UsingeKey в четвертой позиции в строке Path слева, используя те же образцы данных из примера Path().

EmployeeKey ParentEmployeeKey Путь 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 — 3rd from right определяется как '= PATHITEMREVERSE([Path], 3)'; в этом примере возвращается свойство UsingeKey в третьей позиции в строке Path справа, используя те же примеры данных из примера Path().

EmployeeKey ParentEmployeeKey Путь 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 — employee 162 определяется как "= PATHCONTAINS([Path], "162"); в этом примере возвращается значение TRUE , если заданный путь содержит сотрудников 162. В этом примере используются результаты из приведенного выше примера Path().

EmployeeKey ParentEmployeeKey Путь 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