決策支援圖表工具中如何進行行列轉換?

決策支援圖表工具FineBI中的行列轉換特指將關係資料表中的行轉換為列,簡單來說就是將轉化前資料表中某個欄位的所有值取出來,配以某個指標欄位,成為新表的列名。

工具/原料

決策支援圖表工具FineBI

方法/步驟

1. 示例

如下圖所示的資料表stscore,每個學生都有5門課程的成績,儲存在決策支援圖表工具FineBI的資料庫中佔據5條記錄:

決策支援圖表工具中如何進行行列轉換

2 那麼如何使每位學生的成績只佔據一條記錄呢,也就是說,將不同學科的值作為欄位名,實現如下圖效果:

決策支援圖表工具中如何進行行列轉換

3 源資料表

決策支援圖表工具FineBI的ETL轉換表需要基於一個原始表,我們以上圖的stscore表為例,該資料表存在於另外一個數據庫中,不存在於BIdemo業務包中,故,首先我們需要新建一個數據連線,用來獲取該張源資料表,點選資料配置>資料連線管理,在決策支援圖表工具FineBI中新建一個數據連線mysql,配置如下圖:

決策支援圖表工具中如何進行行列轉換

4 新建轉化表

點選決策支援圖表工具FineBI的業務包管理,選中BIdemo業務包,在決策支援圖表工具FineBI的業務包管理介面點選+ETL表按鈕,頁面跳轉到ETL處理介面,點選右上角的新增表按鈕,在資料表選擇頁面中選中mysql資料連線,選中該資料連線下的stscore表,如下圖:

決策支援圖表工具中如何進行行列轉換

5 點選下一步,即可進入決策支援圖表工具FineBI的資料表設定和ETL處理介面,如下圖:

決策支援圖表工具中如何進行行列轉換

6 ETL行列轉化

被轉化的表新增完成之後,點選右側ETL處理中間的表名稱按鈕,進入決策支援圖表工具FineBI的行列轉化配置介面,如下圖:

決策支援圖表工具中如何進行行列轉換

7 根據欄位識別生成的指標所在列:是指資料表中根據需要轉化的欄位值重複的欄位,如上示例,name和studentno就根據需要被轉化欄位course的值重複出現,那麼該下拉框中的欄位可以選擇name或者studentno;

欄次名:是指需要被轉化的行欄位名稱,如上示例,是指course欄位;

原始指標欄位:是指被轉化欄位所對應的值欄位,如上示例,是指grade欄位。

設定完成後,效果如下圖:

點選儲存直到回到決策支援圖表工具FineBI的表設定頁面。

注:如果要更改ETL轉化表的結構設定,點選右側ETL處理中的行列轉化即可。

決策支援圖表工具中如何進行行列轉換

8 點選儲存,回到決策支援圖表工具FineBI的業務包配置介面,可以看到業務包中多了一個stscore_concert的資料表,如下圖:

決策支援圖表工具中如何進行行列轉換

9 效果檢視

在決策支援圖表工具FineBI中新建一個明細表的資料分析,其資料來源於業務包BIdemo下面的stscore-convert表裡面的所有欄位,如下圖:

決策支援圖表工具中如何進行行列轉換

10 欄位新增完成之後,可以看到如下圖明細表,每個學生只有一條記錄,所有學科都轉化為欄位名,與上圖效果一致:

決策支援圖表工具中如何進行行列轉換

相關問題答案