聯結資料
通常需要合併來自多個位置(不同的資料表,甚至不同的資料來源)的資料,以執行所需的分析。根據資料的結構和分析的需要,有幾種合併資料表的方法。
關係與聯結
Tableau Desktop 中的預設方法是使用關係。在合併資訊時,關係會保留原始資料表的詳細資料層級。關係還允許對工作表逐個執行基於內容的聯結,從而讓每個資料來源更具有彈性。在大多數情況下,建立使用關係來合併資料。有關詳情,請參閱關係與聯結的不同之處。
但是,有時可能想要直接建立聯結,以進行控制,或比較聯結與關係的所需方面,例如有意篩選或複製。
附註:關係最終會利用聯結(只是在幕後)。例如,視覺效果使用不同資料來源中表的欄位時,跨資料來源的關係將產生跨資料庫聯結。因此,改善跨資料庫聯結的效能可能具有相關性。
常見問題
- 若要檢視、編輯或建立聯結,必須在關係畫布(即首次開啟或建立資料來源時看到的區域)中開啟邏輯資料表,並存取聯結畫布。
- 已發佈的 Tableau 資料來源無法用於聯結。若要合併已發佈的資料來源,必須編輯原始資料來源,以原生方式包含聯結或使用資料混合。
- 聯結資料表時,聯結的欄位必須具有相同的資料類型。如果在聯合資料表之後變更資料類型,聯接將中斷。
- 無法在不中斷聯結的情況下移除聯結子句中使用的欄位。若要聯結資料並能夠清理重複的欄位,請使用 Tableau Prep Builder,而不是 Desktop
提示:雖然 Tableau Desktop 具有建立聯結和執行一些基本資料調整的功能,但 Tableau Prep Builder 是為準備資料而設計的。若需要執行多個聯結、清理欄位名稱、變更資料類型、執行多個樞紐分析或其他涉及的資料準備工作,請考慮使用 Tableau Prep Builder(連結在新視窗開啟)。
建立聯結
若要建立聯結,請連線到一個或多個相關的資料來源。請參閱連線到資料。
聯結可以位於相同的資料來源(例如資料庫中的資料表或 Excel 試算表中的工作表)中,也可以位於不同的資料來源中(這稱為跨資料庫聯結)。若使用跨資料庫聯結合併資料表,Tableau 會對畫布中的資料表和資料網格中的欄著色,以向您顯示資料來自哪個連線。
附註:並非所有資料來源均支援跨資料庫聯結,包括已發佈的 Tableau 資料來源。若要合併已發佈的資料來源,請編輯原始資料來源,以原生方式包含聯結或使用資料混合。
將第一個資料表拖到畫布上。
從功能表中選取「開啟」,或按兩下第一個資料表,以開啟聯結畫布(實體層)。
按兩下另一個資料表或將另一個資料表拖到聯結畫布上。
若下一個資料表完全來自另一個資料來源,請在左側窗格中的連線下,按一下新增按鈕(在 Web 製作中為 ),以將新連線新增到 Tableau 資料來源。選取該連線後,將所需的資料表拖到聯結畫布上。
按一下聯結圖示,以設定聯結。從資料來源中使用的其中一個可用資料表中選取一個欄位,然後選擇聯結運算子,並從新增的資料表中選取一個欄位,以新增一個或多個聯結子句。
附註:透過按一下將滑鼠指標暫留在聯結子句右側時顯示的「x」,您可以刪除不需要的聯結子句。
完成後,關閉聯結對話方塊和聯結畫布。
建立聯結後,請聯結資料。若要對聯結進行疑難排解,請參閱聯結資料。
剖析聯結
聯結由其類型以及聯結子句定義。
聯結類型
通常,您在 Tableau 有四種聯結類型可用:內聯結、左聯結、右聯結和完全外部聯結。如果您在合併多個表格中的資料時,不確定要使用哪種聯結類型,請使用「關係」。
聯結類型 | 結果 |
內聯接 | 使用內部聯結來合併表時,產生的表將包含與兩個表均相符的值。 若值在兩個資料表中不相符,會將該值完全丟棄。 |
左聯結 | 使用左聯接來合併表時,產生的表將包含左側表中的所有值以及右側表中的對應相符項。 當左側表中的值在右側表中沒有對應相符項時,您將在資料網格中看到 null 值。 |
右聯結 | 使用右聯接來合併表時,產生的表將包含右側表中的所有值以及左側表中的對應相符項。 當右側表中的值在左側表中沒有對應相符項時,您將在資料網格中看到 null 值。 |
完全外部聯結 | 使用完全外部聯結來合併表時,產生的表將包含兩個表中的所有值。 當任一表中的值在另一個表中沒有相符項時,您將在資料網格中看到 null 值。 |
聯集 | 儘管聯集不是一種聯接,但聯集是透過將一個表中的幾列資料附加到另一個表來合併兩個或更多表的另一種方法。理想情況下,您聯集的表必須具有相同的欄位數,並且這些欄位必須具有相符的名稱和資料類型。有關聯集的詳情,請參閱聯集資料。 |
並非所有資料庫都支援所有聯結類型。若聯結對話方塊中的選項不可用,則可能是由於資料來源中的條件約束所致。
聯結子句
可透過設定一個或多個聯結子句來執行聯結。聯結子句可告知 Tableau 資料表之間共用哪些欄位以及如何比對對應的列。例如,具有相同 ID 的列會在結果資料表中對齊。
聯結子句最常使用等號比較運算子 (=),該運算子會比對具有相同值的列。還可以執行非等號比較聯結,如小於 (<) 和不等於 (<>)。
聯結也可以有多個聯結子句。例如,若「名字」和「姓氏」儲存在單獨的欄中,則只有當「名字 = 名字」和「姓氏 = 姓氏」時,才可能方便進行聯結。若要聯結列,兩個條件都必須為 true。或者,若目標是在共用姓氏但不共用名字時傳回結果,則聯結子句可以是「名字 <> 名字」和「姓氏 = 姓氏」。
聯結子句也可以包含計算。例如,聯結子句可以是名稱欄位的串連「[名字] + [姓氏] = [名字] + [姓氏]」。請注意,並非所有資料來源連線都支援聯結子句中的計算。
關於聯接鍵中的 Null 值
通常,會在資料庫層級執行聯接。如果用於聯合資料表的欄位包含 Null 值,則大多數資料庫返回的資料不存在包含 Null 值的列。但是,對於某些單一連線的資料來源,Tableau 會提供附加選項,以允許將包含 Null 值的欄位與包含 Null 值的其他欄位進行聯結。
設定了資料來源後,在資料來源頁面上選取「資料」>「將 Null 值聯結到 Null 值」。
若該選項顯示為灰色,則對資料來源不可用。請注意,若向使用此選項的資料來源新增第二個連線,聯結會還原為預設行為,即排除具有 Null 值的列。
跨資料庫聯結
Tableau 允許聯結不同資料來源中的資料表,雖然資料庫方面對相容的平台有一些限制。跨資料庫聯結需要多連線資料來源,即在聯結資料表之前,需要與每個資料庫建立新連線。
- 連線到第一個資料來源後,請使用資料窗格中的「新增」選項來新增另一個連線。
附註:若在嘗試新增另一個連線時,「連線」清單中沒有可用的所需連接器,則不支援使用跨資料庫聯結合併要聯結的資料來源。這包括與 Cube 資料(如 Microsoft Analysis Services)、大部分純擷取資料(如 Google Analytics (分析) 和 OData)和已發佈的 Tableau Server 資料來源的連線。
- 這會建立第二個連線,而不是一個完全不同的資料來源。在「資料來源」索引標籤上時,可以在兩個(或多個)連線之間切換。
- 移至工作表並開始分析後,資料來源會作為合併的單一資料來源運作。這與工作表上可以進行切換的兩個獨立的資料來源不同。
附註:通常,聯結來自同一資料庫的資料表會產生更好的效能。這是因為查詢存放在同一資料庫中的資料需要的時間較短,並且會利用資料庫的本機功能來執行聯接。有關跨資料庫聯結效能的詳情,請參閱改善跨資料庫聯結的效能。