跳到主要內容 跳至補充內容

Hierarchy

hierarchy 前置詞用來將上下層式階層表格轉換為可以在 Qlik Sense 資料模型中使用的表格。它可以放在 LOADSELECT 陳述式的前面,而且將使用載入陳述式的結果做為表格轉換的輸入。

此前置詞會建立展開的節點表格,這一般會有與輸入表格相同的記錄數,不過除此之外階層中的各個層級會儲存在個別的欄位中。路徑欄位可以在樹狀結構中使用。

語法:  

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

 

此輸入表格必須是相鄰節點表格。相鄰節點表格是各個記錄對應於一個節點的表格,其中有欄位包含上層節點的參考。在這類表格中,節點僅儲存在一筆記錄內,但是節點仍可有任何數目的子節點。當然,表格可包含其他用來描述節點屬性的欄位。

此前置詞會建立展開的節點表格,這一般會有與輸入表格相同的記錄數,不過除此之外階層中的各個層級會儲存在個別的欄位中。路徑欄位可以在樹狀結構中使用。

輸入表格通常對於各個節點只有一筆記錄,因此,輸出表格將包含相同筆數的記錄。不過,有時候節點會有多個上層節點,也就是一個節點由輸入表格中的多筆記錄表示。若是如此,輸出表格的記錄會比輸入表格多。

上層識別碼不在節點資料行中的所有節點 (包括遺失上層識別碼的節點) 將被視為根節點。另外,只有直接或間接連線到根節點的節點才會載入,以避免循環參照。

可建立包含上層節點名稱、節點路徑和節點深度的其他欄位。

引數:  

引數
引數 描述
NodeID 包含節點識別碼的欄位名稱。 此欄位必須存在於輸入表格中。
ParentID 包含上層節點識別碼的欄位名稱。 此欄位必須存在於輸入表格中。
NodeName 包含節點名稱的欄位名稱。 此欄位必須存在於輸入表格中。
ParentName 用於命名新 ParentName 欄位的字串。如果省略,將不會建立此欄位。
ParentSource 建立節點路徑所用節點名稱包含在其中的欄位名稱。選用參數。如果省略,將使用 NodeName
PathName 用於命名新 Path (路徑) 欄位的字串,其中包含從根節點到該節點的路徑。選用參數。如果省略,將不會建立此欄位。
PathDelimiter 在新的 Path (路徑) 欄位中作為分隔符號的字串。選用參數。如果省略,將使用 '/'。
Depth 用於命名新 Depth (深度) 欄位的字串,此欄位包含節點在階層中的深度。選用參數。如果省略,將不會建立此欄位。

範例:  

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 ParentID NodeName NodeName1 NodeName2 NodeName3 ParentName PathName Depth
1 4 London Europe UK London UK Europe\UK\London 3
2 3 Munich Europe Germany Munich Germany Europe\Germany\Munich 3
3 5 Germany Europe Germany - Europe Europe\Germany 2
4 5 UK Europe UK - Europe Europe\UK 2
5   Europe Europe - - - Europe 1

瞭解更多資訊

 

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!