對聯結進行疑難排解
附註:若聯結錯誤地計算了資料的數量,則可能是一個跡象,表示應該改用關係。有關關係的詳情,請參閱與您的資料建立關聯。有關 Tableau 如何處理來自不同詳細資料層級(如多對多關係)的合併資料的資訊,請參閱基數和參考完整性。
過度計數的值或重複資料
連線到多個表並將這些表聯接在一起時,將會建立一個非標準化資料版本。在某些情況下,Tableau 將多個表視為一個表。如果多個表被視為一個表,則在聯合資料表之後將會查詢所有表。這些值導致值被過度計數。
例如,假設您有兩個表。第一個表包含員工資訊,例如員工 ID 和工資。第二個表包含組織資訊,例如部門名稱。
表 1
| 表 2
|
如果針對「Employee ID」(員工 ID)聯接這些表,則某個員工的工資將計數多次,因為該員工與多個部門關聯。
Employee ID | 名稱 | Salary | 部門 | Hire Date | Organization |
20107 | Wilson, Henry | 61,000 | 支援 | 2015/7/28 | 營運 |
20107 | Wilson, Henry | 61,000 | 銷售額 | 2016/8/25 | 營運 |
這是一對多基數的範例(資料表 1 中的一個員工 ID 在資料表 2 中有多個結果)。有關資料表之間基數的詳情,請參閱使用效能選項最佳化關係查詢。
為了幫助解決此問題,您可以執行以下操作之一:
關聯資料:可以使用關係,而不是建立可能會重複資料的聯結。有關詳情,請參閱與您的資料建立關聯。
變更彙總: 您可以根據您的分析使用 MIN 或 AVG 彙總來移除重複計數。
例如,如果將「Salary」(工資)的彙總從 SUM 變更為 MIN 或從 SUM 變更為 AVG。
建立用於移除重複值的計算欄位:您可以建立一個計算,將要複製的欄位的總和除以導致重複的欄位執行個體數。
例如,系統按 Wilson, Henry 的「Employee ID」(員工 ID)的執行個體數複製了「Salary」(工資)值。在此情況下,請將檢視中的「Salary」(工資)替換為使用以下公式的計算欄位:
SUM ([Salary])/ COUNT ([Employee ID])
。您也可以使用詳細層級運算式來刪除重複資料。有關詳情,請參閱 Tableau 知識庫中的使用 LOD 計算移除重複資料(連結在新視窗開啟)。
使用自訂 SQL: Tableau 支援使用自訂 SQL 連線到一個資料來源的多個表。在使用 GROUP BY 子句聯合資料表之前,可以預先彙總這些表。此選項需要一些有關編寫 SQL 查詢的知識以及資料庫專家的說明(如果可能)。有關如何從 Tableau 連線到自訂 SQL 查詢詳情,請參閱連線到自訂 SQL 查詢。
中斷的表格聯結和跨資料庫聯結
在聯結表格(從相同的資料來源或使用跨資料庫聯結)之前,請確定聯結索引鍵的資料類型是相符的。如果聯結索引鍵的資料類型不相符,聯結將會中斷;發生此狀況時,將會出現紅色的感嘆號,以及錯誤文字「聯結欄位之間的類型不相符」。若要修復斷開的聯接,請遵循以下建議之一:
您可以在聯接對話方塊中變更欄位(包括其資料類型)的格式,以透過建立聯接計算使連線鍵相符。聯接計算支援計算子集,以允許您修改要合併的一個或多個表中的聯接鍵格式。若要建立聯結計算,請按一下表格之間聯結斷開的聯結圖示,再按一下格式需要修改的欄位,然後選取「建立聯結計算」。有關詳情,請參閱對聯結進行疑難排解。
對於文字或基於 Excel 的資料,請使用資料網格中的資料類型功能表修改聯接鍵中文字或 Excel 欄位其中之一的資料類型。
僅限 Tableau Desktop:對於大多數連線,您可以使用 CAST () 之類的函數以及「轉換為自訂 SQL」選項變更聯接鍵中其中一個欄位的資料類型。只有當資料來源僅包含連線時,「轉換為自訂 SQL」選項才可用。在這種情況下,請移除第二個連線,然後選取「資料」>「轉換為自訂 SQL」。