Gå till huvudinnehåll Gå till ytterligare innehåll

Hierarchy

Prefixet hierarchy används för att omvandla en hierarkisk tabell till en tabell som fungerar i en Qlik Sense-datamodell. Det kan sättas framför en LOAD- eller SELECT-sats och det använder resultatet från den laddade satsen som indata för en tabellomvandling.

Prefixet skapar en expanderad nodtabell som normalt har samma antal poster som indatatabellen, men dessutom lagras varje nivå i hierarkin i ett separat fält. Sökvägsfältet kan användas i en trädstruktur.

Syntax:  

Hierarchy (NodeID, ParentID, NodeName, [ParentName, [PathSource, [PathName, [PathDelimiter, Depth]]]])(loadstatement | selectstatement) 

 

Indatatabellen måste vara en ”adjacent nodes”-tabell. ”Adjacent nodes”-tabeller är tabeller där varje post motsvarar en nod och har ett fält som innehåller en referens till modernoden. I en sådan tabell lagras noden i en post men kan ha valfritt antal döttrar. Tabellen kan självklart innehålla ytterligare fält som beskriver nodernas attribut.

Prefixet skapar en expanderad nodtabell som normalt har samma antal poster som indatatabellen, men dessutom lagras varje nivå i hierarkin i ett separat fält. Sökvägsfältet kan användas i en trädstruktur.

Indatatabellen har vanligtvis exakt en post per nod. Om så är fallet innehåller utdatatabellen samma antal poster. Ibland kan det finnas noder med flera mödrar, d.v.s. varje nod motsvaras av flera poster i indatatabellen. Om så är fallet kan utdatatabellen innehålla fler poster än indatatabellen.

Alla noder med ett överordnat ID som inte hittas i nod-ID-kolumnen (inklusive de som saknar överordnat ID) behandlas som rötter. Dessutom kommer endast noder med en koppling till en rotnod – direkt eller indirekt – att laddas för att undvika cirkelreferenser.

Man kan skapa ytterligare fält som innehåller modernodens namn, sökvägen till noden och nodens djup.

Argument:  

Argument
Argument Beskrivning
NodeID Namnet på det fält som innehåller nodens ID. Detta fält måste förekomma i indatatabellen.
ParentID Namnet på det fält som innehåller modernodens nod-ID. Detta fält måste förekomma i indatatabellen.
NodeName Namnet på det fält som innehåller nodens namn. Detta fält måste förekomma i indatatabellen.
ParentName En sträng som används för att namnge det nya ParentName-fältet. Om den utelämnas skapas ej detta fält.
ParentSource Namnet på det fält som innehåller namnet på den nod som används för att bygga nodens sökväg. Valfri parameter. Om den utelämnas används NodeName.
PathName En sträng som används för att namnge det nya fältet Path som innehåller sökvägen från rot till nod. Valfri parameter. Om den utelämnas skapas ej detta fält.
PathDelimiter En sträng som används som avgränsare i det nya Path-fältet. Valfri parameter. Om den utelämnas används '/'.
Depth En sträng som används för att namnge det nya fältet Depth som innehåller djupet på noden i hierarkin. Valfri parameter. Om den utelämnas skapas ej detta fält.

Exempel:  

Hierarchy(NodeID, ParentID, NodeName, ParentName, NodeName, PathName, '\', Depth) LOAD * inline [

NodeID, ParentID, NodeName

1, 4, London

2, 3, Munich

3, 5, Germany

4, 5, UK

5, , Europe

];

 

NodeID ParentIDNodeNameNodeName1NodeName2NodeName3ParentNamePathNameDepth
14LondonEuropeUKLondonUKEurope\UK\London3
23MunichEuropeGermanyMunichGermanyEurope\Germany\Munich3
35GermanyEuropeGermany-EuropeEurope\Germany2
45UKEuropeUK-EuropeEurope\UK2
5 EuropeEurope---Europe1

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!