JOIN típusok

Ahogyan azt az adatbázis lekérdezések esetében már megszokhattuk, a JOIN, mint adatforrások között létrehozott kapcsolódási forma 4 típusban használható:

A Tableau által használt ikonok nagyon jól kifejezik, hogy melyik típus választása esetén mi lesz a végeredményünk, de nézzük egyesével, példákkal.

A két tábla, amit használni fogunk arra, hogy az összekapcsolási módok közötti különbségeket megértsük:

Mindkét táblában szerepelnek olyan elemek, amik a másikban nem (jelölve az alsó 3 illetve 2 sor)

Fontos infó lesz a továbbiakhoz, hogy az ‘Orders’ tábla 13, a ‘Returns’ pedig 12 soros ebben a példában, és összesen 10 közös soruk van (10 olyan ‘Order ID’, ami mindkét táblában szerepel)

A két tábla között először is keresnünk kell egy (lehetőleg!) egyedi azonosítót, ami alapján az egyikben levő adatokhoz hozzárendelhetünk újabb információt tartalmazó oszlopokat a másikból.
A példában szeretném megtudni, hogy az ‘Orders’ táblában szereplő rendelések közül mi az, amit visszaküldtek.
Ez az úgynevezett kapcsoló mező esetünkben az ‘Order ID’ oszlop lesz, mivel ez mindkét táblában szerepel.
A kapcsoló mezőt a Tableau-ban egyszerűen kiválaszthatjuk a két tábla oszlopait tartalmazó legördülő mezőkből. Amennyiben a két táblában a mezőt ugyanúgy hívják, a Tableau automatikusan ezeket választja kapcsolómezőnek. (Vigyázat! a Tableau akkor is megpróbálja összekapcsolni a táblákat ezen mező alapján, ha különböző adattartalomról van szó és mondjuk csak az oszlopnév azonos – pl. ID-nak hívunk egy-egy oszlopot mindkét táblában, de ezek nem ugyanazokat az azonosítókat tartalmazzák, mert az egyik rendelés-azonosító, a másik pedig számla-azonosító).

Nézzük, hogyan kapcsolhatjuk össze a két táblát – egy új adatforrást készítve -, és válasszuk ki azt, amelyikre szükségünk van a további elemzésekhez.

A táblák összekapcsolásával a célom, hogy kiszűrhessem az adatok közül a visszaküldött rendelésekhez tartozó összes információt, mert ezekkel a továbbiakban nem akarok dolgozni.


INNER JOIN

A létrehozott új adathalmaz a két eredeti táblának azokat a sorait fogja tartalmazni, amelyek ‘Order ID’-ja mindkét táblában szerepel.

< == Az ikon Tableau-ban a két halmaz metszete (a két tábla közös része)

Az eredmény egy 10 sorból álló tábla (csak azok a sorok, amiknek az ‘Order ID’-ja – mint kapcsoló mező – megtalálható mindkét táblában).


LEFT JOIN

A létrehozott új adathalmaz minden sort tartalmaz a bal oldali táblából, és azokat az adatokat a jobb oldaliból, amelyek hozzá kapcsolhatók az első tábla ‘Order ID’ oszlopában szereplő értékekhez.
Ahogy látjátok, használom a bal- és a jobb oldal kifejezéseket. Ezeknél a táblakapcsolat-formáknál nagyon fontos a táblák sorrendje. A LEFT JOIN valóban a bal oldali tábla minden elemét veszi ugyanis figyelembe (míg a RIGHT JOIN a jobb oldali táblából indul ki, ahogy majd látjátok a következő pontban)

< == Az ikon Tableau-ban az első halmaz egésze és az ehhez kapcsolható adatok a második halmazból

Az eredmény egy 13 sorból álló tábla (megegyezik az ‘Orders’ tábla eredeti méretével).

Azok számára, akik Excelben otthonosan mozognak: jelen példánkban a LEFT JOIN elképzelhető egy VLOOKUP függvényként, ahol az ‘Order ID’ mezőhöz tartozó további adatokat oszlopként adunk az eredeti táblához.
Vigyázat! ez csak abban az esetben igaz, ha a kapcsoló mező EGYEDI azonosító (vagyis nem szerepel többször ugyanaz az ‘Order ID’ a második táblában). Ezzel az esettel a VLOOKUP is nehezen boldogul..


RIGHT JOIN

A létrehozott új adathalmaz minden sort tartalmaz a jobb oldali táblából, és azokat az adatokat a bal oldaliból, amelyek hozzá kapcsolhatók ezen tábla ‘Order ID’ oszlopában szereplő értékekhez.

< == Az ikon Tableau-ban a második halmaz egésze és az ehhez kapcsolható adatok az első halmazból

Az eredmény egy 12 sorból álló tábla (megegyezik a ‘Returns’ tábla eredeti méretével)


(FULL) OUTER JOIN

Az így létrehozott új adathalmaz minden sort tartalmaz mindkét táblából. Azokhoz a sorokhoz, amik mindkét táblában szerepelnek, mindkét tábla információi bekerülnek, viszont azok a sorok is szerepelni fognak, amiket csak az egyes táblák tartalmaznak.

< == Az ikon Tableau-ban azt jelzi, hogy mindkét halmaz adatai bekerülnek az így kialakuló új adatforrásba

Az eredmény egy 15 sorból álló tábla (tartalmazza az ‘Orders’ tábla 13 sorát plusz azt a kettőt a ‘Returns’ táblából, amihez nincsen adat az ‘Orders’-ben)