【Tableau】prep合併數據之聯結join
來自專欄 Tableau1 人贊了文章
一、理解Join和Union
在Tableau中,合併數據有兩個基本的方法,聯結join 和並集Union,更具體的說,是基於部分共同欄位的數據聯結Join,和全部欄位一致的數據並集Union。
不得不說,Tableau Prep的官方翻譯是有誤導性的,它把Join和Union翻譯為「聯結和合併」,又說,「兩種方法來合併 Tableau Prep 中的數據:聯接和合併」,非常容易導致理解Union上的誤解。
形象的講,可以這麼理解二者的區別:聯結Join用於不同的數據,Union用於相同的數據;聯結Join的結果是數據變得又高又胖(tall and wide)——增加了數據,同時增加了欄位數量;而並集Union的結果是數據變高卻沒有變胖(tall)——後面的數據追加到前面的數據,而欄位沒有增加。
- 聯結Join:不同的數據、有共同的欄位、欄位增多——橫向擴展了欄位,縱向增加了數據;
- 「並集」Union:相同結構的數據、完全相同的欄位、欄位不變——縱向追加數據。
Join容易理解,它在英文中的本意就是前後相接;在Tableau中,諸如標題列{ABCD }與{CDEF}聯結,結果就是{ABCDEF},CD是聯結二者的共同欄位。
Union的本意就是指具有相同結構和屬性的人員、國家、企業等的合併,就像共同信仰的人成立政黨或工會、有共同價值的國家形成聯邦、同為國家的國家形成聯合國、企業成為集團等等;Tableau中的Union,要「確保合併的表具有相同的欄位數、相同的欄位名稱,並且欄位的數據類型相同」,因此「並集」也不是特別準確,邏輯學和常用的「並集」也有重合和不重合的情況,如果用「追加」詞語,可能更加清晰一些。
不妨我們就用Join和Union吧。
二、Join的用法和說明
任意兩個以上的數據表都可以在Join在一起,在flow面板中,把一個工作表直接拖拽到另一個上面,就會提示Join OR Union,放在右側是join(橫向擴展),放在下面是Union(縱向追加)。
1、聯結子句與判斷
此時,prep會自動建議一個聯結的欄位,比如在superstore中的Product ID,你可以從下面的「聯結子句建議」中增加新的子句,也可以在「聯結」右上角的「+」手動增加。
這裡要注意的是,聯結的判斷是可以修改的,默認是等於(=),可以修改為不等於、大於等於、小於等於,etc.
說一個使用「不等於」的案例,比如在做顧客分析時,首次購物時間可以通過min(購物時間)來查找,那第二次購物時間如何查找呢?通過Join聯結全部的購物記錄和首次購物記錄,通過 「購物時間」Join,然後修改為「不等於」(!=),這樣從全部購物記錄中把首次排除,之後再做一次Min(購物時間)的聚合就可以了。
2、聯結類型
在Join中,最重要的地方就在聯結子句(join clause)和聯結類型(Join Type),聯結類型分為幾種:
- 內部聯結(Inner Join,默認):包含了兩側數據中的共同數據;
- 左聯結(Left Join):以左側數據為主
- 右聯結(Right Join)
- 外聯結(Outer Join)
我們可以據一個最簡單的例子,Table 1有四行數據,Table 2有四行數據,其中兩行重合(1和3)通過B=B和C=C兩行數據來Join,四種聯結方式如下圖。最簡單的數據可以了解真相。
當然,如果我們只用B=B聯結怎麼辦?那就在內心中把C作為兩個欄位,一個叫C1,另一個叫C2,不要理會就好了——Tableau也是這麼乾的。
Tableau不愧為可視化王冠,它把聯結結果通過可視化的方式表達出來,可以清晰的看到數據的分布。結合經驗,可以提前判斷Join的可靠性。
三、注意要點
- 在Join的過程中,會遇到我們在講聚合aggregation中同樣的問題,不同的數據聚合程度,Join之後會造成理解上的誤解,因此建議同一詳細級別(Level of Detai)的數據執行Join操作。
這種不同級別的數據聯結(門店級別的銷售數據+公司級別的員工數據),會導致數據上的誤解:員工數量本來是各年度公司的總員工數(聚合度高);聯結後,在門店詳細級別重複出現的「員工數量」欄位,會被認為是每個門店的員工數量(聚合度低的級別)。——這種情況就要在數據分析時特別加以注意。
- 默認的數據聯結子句是左右相等,必要時修改為「不等於」、「大於」等其他判斷;
- 使用數據可視化圖形,和對數據的了解經驗,提前判斷數據Join的可靠性。
4 Sep 2018
Healee
推薦閱讀:
※如何使用tableau實現炸圈圖
※終於知道Tableau中Nested Calculation的強大功能了
※在Tableau Server上傳數據源的幾點備忘
※Cluster 群集工作方法
※Data Visualization Tools