<< Back

Cos’è una JOIN e come vengono gestite da Tableau?

Una JOIN (unione) è la combinazione del contenuto di due o più tabelle che consente di generare un gruppo di risultati contenente le righe e le colonne di ciascuna tabella che contengono dei dati in comune.

Join

INNER JOIN

È l’unione tra i soli campi in comune. Se immaginiamo le due tabelle come due insiemi, il risultato della inner join è l’intersezione dei due insiemi (parte colorata di blu nell’immagine qu sotto).

Inner Join

Avevamo 3 acquisti, di cui però solo 2 sono stati fatti da clienti presenti nel DB: la tabella unita riporta infatti solo 2 voci. Esclude l’acquisto fatto dal cliente con ID = 4.

Come già sappiamo, con Tableau possiamo evitare di mettere mano alle istruzioni SQL, ed eseguire delle join tramite l’interfaccia utente, ma può essere interessante capire com’è l’istruzione per capire come funzionano le join. L’istruzione SQL di questa Join è:

SELECT [Acquisti].[Data ordine] AS [Data ordine],
[Acquisti].[ID] AS [ID],
[Acquisti].[ID Cliente] AS [ID Cliente],
[Acquisti].[Prezzo unitario] AS [Prezzo unitario],
[Acquisti].[Quantità] AS [Quantità],
[Clienti].[Cognome] AS [Cognome],
[Clienti].[Data di nascita] AS [Data di nascita],
[Clienti].[ID] AS [ID (Clienti)],
[Clienti].[Nome] AS [Nome]
FROM [Acquisti]
INNER JOIN [Clienti] ON [Acquisti].[ID Cliente] = [Clienti].[ID]

Che tradotto in italiano significa:

  • prendi le colonne Data ordine | ID | ID Cliente | Prezzo unitario | Quantità |  –> dalla tabella Acquisti
  • prendi le colonne Nome | Cognome | Data di nascita | ID |  –> dalla tabella Clienti
  • unisci la tabella clienti dove le righe della colonna ID Cliente (tabella Acquisti) trovano un valore uguale nelle righe della colonna ID (tabella Clienti).

Detto volgarmente: fammi vedere solo gli acquisti fatti da clienti registrati nel DB.

LEFT JOIN

È l’unione tra tutti i valori presenti nella tabella di sinistra + valori che hanno dei campi in comune. Se immaginiamo le due tabelle come due insiemi, il risultato della left join è l’intersezione dei due insiemi (inner join) + tutto l’insieme di sinistra (parte colorata di blu nell’immagine qu sotto).

Avevamo 3 acquisti, di cui però solo 2 sono stati fatti da clienti presenti nel DB: la tabella unita riporta 3 voci (tutti gli acquisti), ma è in grado di matchare/attribuire i relativi dati sui clienti SOLO per i 2 clienti presenti nel DB e compila con valori nulli (Null) i dati del cliente con ID = 4

In pratica mi restituisce tutti gli acquisti fatti dai clienti registrati + gli acquisti fatti dai clienti non registrati, che avranno dei valori Null nelle colonne Nome, Cognome, Data di nascita (in quanto mancanti).

RIGHT JOIN

È l’esatto opposto della left join: l’unione tra tutti i valori presenti nella tabella di destra + i valori che hanno dei campi in comune. Se immaginiamo le due tabelle come due insiemi, il risultato della right join è l’intersezione dei due insiemi (inner join) + tutto l’insieme di destra (parte colorata di blu nell’immagine qu sotto).

Avevamo 3 clienti, di cui però solo 2 hanno fatto degli acquisti: la tabella unita riporta 3 voci (tutti i clienti), ma è in grado di matchare/attribuire i relativi dati sugli acquisti SOLO per i 2 acquisti presenti nel DB e compila con valori nulli (Null) l’acquisto del cliente ID = 3.

In pratica mi restituisce tutti i clienti che hanno fatto degli acquisti + i clienti che non hanno acquistato nulla, che avranno dei valori Null nelle colonne Data ordine, Prezzo e Quantità (in quanto mancanti).

E sono proprio questi valori “Null” che vengono creati con le left e right join (anche con la Full Outer, che ci restituisce tutti i dati delle tabelle: inner+left+right) quelli a cui dobbiamo prestare attenzione, perché importando dei valori nulli, Tableau li esclude. Li tratta come se non esistessero. E questo potrebbe falsare i calcoli e le formule che andremo a fare per la nostra analisi.

Quindi:

  • Prestare attanzione al tipo di Join che si va a scegliere (e tutto il discorso vale sia per le Join tra tabelle/tab che fanno parte dello stesso file excel/access, sia per il blending tra data source differenti)
  • Pensare di sostituire (con uno zero, con la media, la moda, con la mediana… dipende dal tipo di analisi che stiamo facendo) i valori nulli. Ad esempio, quando si ha a che fare con dati statistici predittivi, è prassi sostituire i valori nulli con la media/moda dei valori residui, per non andare a inficiare i calcoli predittivi.

Federica Ferrarini

Trainer - Milano

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.