HierarchyBelongsTo
Este prefijo se utiliza para transformar una tabla jerárquica padre-hijo en una tabla que sea útil en un modelo de datos Qlik Sense. Se puede poner frente a una sentencia LOAD o SELECT y usará el resultado de la sentencia de carga como datos de entrada para una transformación de tabla.
El prefijo crea una tabla que contiene todas las relaciones hijo-antepasado de la jerarquía. Los campos de antepasados pueden de esta forma utilizarse para seleccionar árboles enteros en la jerarquía. La tabla resultante contiene normalmente varios registros por nodo.
Sintaxis:
HierarchyBelongsTo (NodeID, ParentID, NodeName, AncestorID, AncestorName, [DepthDiff])(loadstatement | selectstatement)
La tabla de entrada debe ser una tabla de nodos adyacentes. Las tablas de nodos adyacentes son tablas en las que cada registro se corresponde con un nodo y tiene un campo que contiene una referencia al nodo padre. En este tipo de tabla, el nodo se almacena en un único registro, pero puede tener un número indeterminado de hijos. La tabla puede por supuesto contener campos adicionales que describan atributos para los nodos.
El prefijo crea una tabla que contiene todas las relaciones hijo-antepasado de la jerarquía. Los campos de antepasados pueden de esta forma utilizarse para seleccionar árboles enteros en la jerarquía. La tabla resultante contiene normalmente varios registros por nodo.
Se puede crear un campo adicional que contenga la diferencia de profundidad entre los nodos.
Argumentos:
Argumento | Descripción |
---|---|
NodeID | El nombre del campo que contiene el ID de nodo. Este campo debe existir en la tabla de entrada. |
ParentID | El nombre del campo que contiene el ID de nodo del nodo padre. Este campo debe existir en la tabla de entrada. |
NodeName | El nombre del campo que contiene el nombre del nodo. Este campo debe existir en la tabla de entrada. |
AncestorID | Una cadena que se emplea para nombrar el nuevo campo de ID del antepasado, el cual contiene el ID del nodo antepasado. |
AncestorName | Es una cadena que se emplea para nombrar el nuevo campo del antepasado, el cual contiene el nombre del nodo antepasado. |
DepthDiff | Una cadena utilizada para nombrar el nuevo campo DepthDiff, que contiene la profundidad del nodo en la jerarquía relativa al nodo antepasado. Se trata de un parámetro opcional. Si se omite, dicho campo no se creará. |
Ejemplo:
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
];
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 |