<< Back

Altri tipi di Join: differenze tra SQL e Alteryx

L’argomento del blog di oggi, saranno gli altri tipi di ‘JOIN’ esistenti.

Iniziamo subito con una breve ripasso delle JOIN esistenti (potete leggerle nel dettaglio nel blog di Federica); la JOIN è una 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.  Possiamo dividere questo macro gruppo in 4 sottoinsiemi:

  • (INNER) JOIN: È l’unione tra i soli campi in comune tra due tabelle.
  • LEFT (OUTER) JOIN: È l’unione tra tutti i valori presenti nella tabella di sinistra più i valori che hanno dei campi in comune con quest’ultima.
  • RIGHT (OUTER) JOIN:  Possiamo definirla come l’esatto contrario della left join:  l’unione tra tutti i valori presenti nella tabella di destra più i valori che hanno dei campi in comune con la parte di destra.
  • FULL (OUTER) JOIN: È l’unione di tutti i campi presenti nelle due tabelle.

 

Risultati immagini per right. left, inner,full join

 

Altri tipi di combinazioni che mi vengono in mente possono essere:

  • i prodotti cartesiani ovvero quelle coppie ordinate che hanno come primo elemento un elemento di A e come secondo elemento un elemento di B (in parole povere, correlo tutto con tutto);
  • la seconda combinazione può essere quella che esclude tutto ciò che non è presente nell’insieme/tabella di destra con quello di sinistra.

Il primo caso può essere facilmente risolto utilizzando un Append Fields Tool (a breve uscirà un blog su questo); immaginiamo di avere due parti di flow o due data source che vorremmo fossero messe in relazione per comporre un prodotto cartesiano, non dovremmo far altro che importare in canvas come detto sopra l’Append Fields Tool (vedi img sotto).

 

 

 

 

 

tabella 1
tabella 1

flow
flow
prodotto cartesiano
prodotto cartesiano

 

Il secondo caso, quindi quella combinazione che esclude i campi comuni, può essere svolta con la stessa facilità del prodotto cartesiano, ovvero semplicemente aggiungendo un filtro che esclude i campi che hanno Field1 = Field3.

 

risultati filtrati
risultati filtrati
risultati positivi
risultati positivi

Vi starete chiedendo il perchè spiegarvi una cosa così semplice, presto detto:

Magari qualcuno di voi ancora non conosce Alteryx, altri non sanno cosa sia un prodotto cartesiano o magari altri non sa utilizzare un Apped Fields Tool, voglio però mostrarvi cosa dovrei fare utilizzando SQL e ragionare quindi sul perchè Alteryx è lo strumento giusto per chi in azienda deve occuparsi di Data Preparation o di tutta la parte di ETL in generale.

Qui proveremo a risolvere questi due tipi di combinazioni sia con Alteryx che con SQL.

Partiamo dando una definizione di SQL (Structured Query Language) ovvero è un linguaggio che permette di entrare in un database, leggerlo, modificarlo e soprattutto e da la possibilità di interrogare in più modi il DB, attravero le cosidette query.  Le query a sua volta permettono di estrarre, inserire, aggiornare e cancellare record da un database, oltre a creare nuovi database, nuove tabelle in un database, e molte altre funzioni.

Nel primo caso avrei dovuto scrivere qualcosa del genere in SQL:

SELECT *
FROM [Tabella1$],[Tabella2$]

In questo modo vado però ad estrarre tutte le colonne presenti in DB, nel caso volessi estrarne solo alcune, avrei dovuto andare a specificarle tutte.

Invece nel secondo caso abbiamo il seguente linguaggio SQL:

SELECT [Tabella1$].[Field1], [Tabella2$].[Field2]

FROM  [Tabella1$]

INNER JOIN [Tabella1$] [Tabella2$] ON [Tabella1$].[Field1] <> [Tabella2$1].[Field3]

GROUP BY   [Tabella1$].[Field1], [Tabella2$].[Field2]

In questo caso come potete osservare, ho dovuto specificare le colonne da estrarre e su quale devo andare a fare la ‘JOIN’ escludendo gli elementi comuni.

Come potete vedere è molto più semplice ed intuitivo andare ad utilizzare Alteryx; inoltre usando il nostro strumento di ETL preferito ho la possibilità di fare JOIN su DataBase di vario tipo e no provenienti da una sola fonte. Punti forti sono quindi:

  • flessibilità;
  • velocità;
  • scalabilità;
  • e semplicità perchè non devo fare scripting.

Contattatemi nel caso abbiate bisogno di informazioni riguardanti Alteryx, o lasciate un feedback in commento.

Qui il mio profilo Tableau Public, Linkedin e Twitter.

Federico Lusi

Sales - 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.