Перейти к основному содержимому Перейти к дополнительному содержимому

HierarchyBelongsTo

Префикс используется для преобразования иерархической таблицы в полезную таблицу модели данных Qlik Sense. Его можно поставить перед оператором LOAD или SELECT. Он будет использовать результат оператора загрузки в качестве ввода для преобразования таблицы.

Префикс позволяет создавать таблицу, которая содержит все связи родительский-дочерний элемент иерархии. Родительские поля затем могут использоваться для выбора целых деревьев в иерархии. Выходная таблица, как правило, включает несколько записей на каждый узел.

Синтаксис:  

HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)

 

В качестве входной таблицы должна использоваться таблица со смежными узлами. Таблицы со смежными узлами — таблицы, где каждая запись соответствует узлу и имеет поле, содержащее ссылку на родительский узел. В таких таблицах узел хранится в одной записи, но может иметь любое число дочерних узлов. В таблице могут содержаться дополнительные поля, описывающие атрибуты для узлов.

Префикс позволяет создавать таблицу, которая содержит все связи родительский-дочерний элемент иерархии. Родительские поля затем могут использоваться для выбора целых деревьев в иерархии. Выходная таблица, как правило, включает несколько записей на каждый узел.

Можно создать дополнительные поля, содержащие разницу глубины узлов.

Аргументы:  

Аргументы
Аргумент Описание
NodeID Имя поля, содержащего идентификатор узла. Это поле должно существовать во входной таблице.
ParentID Имя поля, содержащего идентификатор родительского узла. Это поле должно существовать во входной таблице.
NodeName Имя поля, содержащего имя узла. Это поле должно существовать во входной таблице.
AncestorID Строка имени нового поля идентификатора родительского узла, которое содержит идентификатор родительского узла.
AncestorName Строка имени нового поля родительского узла, которое содержит имя родительского узла.
DepthDiff Строка имени нового поля DepthDiff, содержащего глубину узла в иерархии по отношению к родительскому узлу. Дополнительный параметр. При его отсутствии это поле не создается.

Пример:  

HierarchyBelongsTo (NodeID, AncestorID, NodeName, AncestorID, AncestorName, DepthDiff) LOAD * inline [

NodeID, AncestorID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

 

Results
NodeID AncestorID NodeName AncestorName DepthDiff
1 1 London London 0
1 4 London UK 1
1 5 London Europe 2
2 2 Munich Munich 0
2 3 Munich Germany 1
2 5 Munich Europe 2
3 3 Germany Germany 0
3 5 Germany Europe 1
4 4 UK UK 0
4 5 UK Europe 1
5 5 Europe Europe 0

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!