一個公司部門之間都存在層級關係,每個部門都會有唯一的部門ID對應,比如說總部(ID為1),市場部(ID為11,該層級的第一位為第一層的ID值)業務員(ID為111,該層級的第一位為第一層級的值,第二位為第二層級的值),市場部是總部下面的分屬部門,業務員是市場部的下屬部門,商業智能圖表軟件FineBI的數據庫存儲部門信息的時候,都是將所有部門ID放在一個數據列中,並沒有將總部作為一個數據列,市場部作為一個數據列,那麼在進行數據分析的時候,如果要顯示各個部門的層級關係,並按照層級關係分組顯示數據,就沒法直接添加維度來實現分組效果
工具/原料
商業智能圖表軟件FineBI
方法/步驟
1 示例
一般來說,擁有層級關係的ID有2種存儲方式:
· ID長度不一致
如公司部門表中數據,ID的長度不一致,每增加一個層級,長度就會增加相應位數,並且前面的數據與上一級保持一致:
2 ID長度一致
如下圖,ID的長度保持一致,長度為部門的總層級數乘以每個層級的相應位數:
3 以公司部門表中數據為例,為商業智能圖表軟件FineBI的BIDemo業務包添加公司部門表,數據表的添加方式請查看數據表管理。
點擊公司部門,進入商業智能圖表軟件FineBI的公司部門配置界面,點擊右邊ETL處理中間的表名字按鈕,選擇構建自循環列,如下圖:
4 頁面跳轉到商業智能圖表軟件FineBI的自循環列管理界面,如下圖,點擊自循環列設置後面的下拉項,可以看到構建自循環列有兩種方式:一個是根據一列數據分層,一個是根據兩列數據分層:
5 根據一列數據分層
商業智能圖表軟件FineBI中根據一列數據分層是指根據有層級關係的一列數據直接構建每個層級的數據列,一般在數據庫中只有該部門ID列,沒有上級ID列的時使用。
6 根據一列數據分層
商業智能圖表軟件FineBI中根據一列數據分層是指根據有層級關係的一列數據直接構建每個層級的數據列,一般在數據庫中只有該部門ID列,沒有上級ID列的時使用。
7 新增列名稱
在商業智能圖表軟件FineBI中點擊構建關係,就會顯示所有級別,並需要給各個級別重命名,如下圖:
8 點擊保存,即可在數據表的配置界面看到新增的數據列:
9 新建分析
點擊商業智能圖表軟件FineBI的新建分析,新建一個即時分析,拖曳表格組件至分析頁面,進入商業智能圖表軟件FineBI的數據配置界面,在左側的數據選擇面板中選中BIDemo業務包,點開部門名稱字段,可以看到其下面有三個子字段,這是在該數據表是自循環列表,根據部門ID字段和上級ID進行了自循環列設置,多出了三列數據,故,部門名稱也對應的多了三個字段:
10 將公司部門表的部門名稱作為行表頭,記錄數作為數值區域的指標,從上圖可以看到部門名稱字段也被自循環為三列數據呢,分別按級別顯示,直接將這三個級別的部門名稱拖曳至行表頭中即可:
橫向表頭會顯示紅色,提示其沒有與值標籤建立關係,這是因為部門ID作為自循環列的基礎列,增加了3個數據列,導致該表中的所有字段均對應有3個數據列,如果讓部門名稱與部門記錄數關聯,必須通過新增的3個列去關聯,那麼可以通過3條路徑進行關聯,3條路徑分別是新增的3個字段,即關聯關係不再唯一,所以需要重新建立關聯關係。
11 點擊行表頭部門名稱後面的下拉按鈕,選擇維度與指標的匹配關係選項,進入商業智能圖表軟件FineBI的指標的標籤數據界面,設置關聯字段,點擊修改選中的1個指標的維度字段,選擇對應維度字段,點擊公司部門>部門名稱,可以看到部門名稱字段下面有子字段,這是因為部門ID構建自循環列,增加了3列,對應的,部門名稱也增加了3列數據,這裡選擇一級.部門名稱,如下圖:
12 將指標名稱修改為一級部門,點擊保存配置之後,一級部門名稱就已經設置好了,此時,行表頭的部門名稱指標不再顯示為紅色,且下方表格中顯示所有一級部門名稱的數據,如下圖:
類似於一級部門名稱的設置方式,再為行表頭添加2個指標維度,指標字段均為部門名稱,並設置數據標籤,分別關聯二級部門名稱和三級部門名稱,切修改指標名稱為二級部門和三級部門,即可完成設置。
13 效果查看
如下圖:
14 根據兩列數據分層
根據兩列數據分層是指根據有數據表中有2列數據,一個數所有層級的部門ID,還有一列數據指定對應層級的上級部門ID,在這種數據結構下,可用根據兩列數據分層。
15 構建關係
同商業智能圖表軟件FineBI的根據一列數據分層的設置方式類似,選中數據表,點擊構建自循環列,選擇根據兩列數據分層,如下圖:
點擊構建關係,接下來的設置過程和使用過程同根據一列數據分層,這裡不再贅述。