Risolvere i problemi relativi ai join

Nota: se il join comporta errori nel conteggio dei dati, ciò potrebbe indicare che è preferibile utilizzare una relazione. Per maggiori informazioni sulle relazioni, consulta Correlare i dati. Per informazioni sul modo in cui Tableau gestisce la combinazione di dati con diversi livelli di dettaglio (ad esempio, le relazioni molti-a-molti), consulta Cardinalità e integrità referenziale.

Over-counting dei valori o dati duplicati

Quando esegui la connessione a più a tabelle, imposti una versione denormalizzata dei dati. In alcuni casi, Tableau gestisce le tabelle multiple come una tabella. Quando più tabelle vengono gestite come una tabella, dopo la creazione del join delle tabelle, tutte le tabelle vengono sottoposte a query. Questo può causare un over-counting dei valori.

Ad esempio, supponi di avere due tabelle. La prima tabella contiene le informazioni sui dipendenti, ad esempio l’ID dipendente e lo stipendio. La seconda tabella contiene informazioni aziendali, ad esempio i nomi dei reparti.

Tabella 1

ID dipendenteNomeStipendio
20106Kim, Michelle63.000
20107Rossi, Mario61.000
20108Smith, John65.000

Tabella 2

RepartoData di noleggioID dipendenteOrganizzazione
Sviluppo16/06/201620289Strategia
Assistenza28/07/201520107Operazioni
Assistenza05/08/201620299Operazioni
Vendite25/08/201620107Operazioni

Se crei il join di queste tabelle in base all’ID dipendente, lo stipendio di un dipendente viene contato più di una volta perché il dipendente è associato a più reparti.

ID dipendenteNomeStipendioRepartoData di noleggioOrganizzazione
20107Rossi, Mario61.000Assistenza28/07/2015Operazioni
20107Rossi, Mario61.000Vendite25/08/2016Operazioni

Questo è un esempio di cardinalità uno-a-molti (un ID dipendente nella tabella 1 ha più risultati nella tabella 2). Per maggiori informazioni sulla cardinalità tra le tabelle, consulta Ottimizzare le query di relazione utilizzando le opzioni per le prestazioni.

Per risolvere il problema, puoi eseguire una delle operazioni seguenti:

  • Correlare i dati: invece di creare un join, che potrebbe duplicare i dati, puoi utilizzare le relazioni. Per maggiori informazioni, consulta Correlare i dati.

    Modificare l’aggregazione: a seconda dell’analisi, puoi utilizzare l’aggregazione MIN o AVG per rimuovere l’over-counting.

    Ad esempio, modifichi l’aggregazione di Stipendio da SUM a MIN o da SUM a AVG.

  • Creare un campo calcolato che rimuove i valori duplicati: puoi creare un calcolo che divida la somma del campo duplicato per il numero di istanze del campo che causa la duplicazione.

    Ad esempio, i valori Stipendio sono duplicati dal numero di istanze dell’ID dipendente di Mario Rossi. In questo caso, nella vista sostituire Stipendio con un campo calcolato che utilizza la formula seguente: SUM ([Salary])/ COUNT ([Employee ID]).

    Inoltre, puoi utilizzare un’espressione di Livello di dettaglio per eliminare i dati duplicati. Per maggiori informazioni, consulta Rimozione dei dati duplicati con calcoli LOD(Il collegamento viene aperto in una nuova finestra) nel Knowledge Base Tableau.

  • Utilizzare SQL personalizzato: Tableau supporta l’utilizzo di SQL personalizzato per la connessione a più tabelle in un’origine dati. Puoi pre-aggregare le tabelle prima di eseguire il join con una clausola GROUP BY. Questa opzione richiede alcune conoscenze della scrittura di query SQL e l’assistenza di un esperto di database, se possibile. Per maggiori informazioni su come connettersi a una query SQL personalizzata da Tableau, consulta Connettersi a una query SQL personalizzata.

Join delle tabelle interrotti e join tra database

Prima di creare un join tra le tabelle (dalla stessa origine dati o utilizzando un join tra database), verifica che i tipi di dati delle chiavi di join corrispondano. Se i tipi di dati delle chiavi di join non corrispondono, il join viene interrotto. Tale interruzione viene indicata da un punto esclamativo rosso e dal testo di errore "type mismatch between join fields" (mancata corrispondenza dei tipi di campi join). Per correggere un join interrotto, utilizza uno dei suggerimenti seguenti:

  • Puoi modificare il formato di un campo (incluso il relativo tipo di dati) nella finestra di dialogo del join per far corrispondere le chiavi di join creando un calcolo di join. Un calcolo di join supporta un sottoinsieme di calcoli che consente di modificare il formato della chiave di join in una o più tabelle da combinare. Per creare un calcolo di join, fai clic sull’icona di join tra le tabelle con un join interrotto, fai clic sul campo con il formato da modificare e quindi seleziona Crea calcolo di join. Per maggiori informazioni, consulta Risolvere i problemi relativi ai join.

  • Per i dati di testo o basati su Excel, modifica il tipo di dati di uno dei campi di testo o di Excel nella chiave di join utilizzando il menu di tipo di dati nella griglia di dati.

  • Solo per Tableau Desktop: per la maggior parte delle connessioni, puoi utilizzare l’opzione Converti in SQL personalizzato per modificare il tipo di dati di uno dei campi della chiave di join, utilizzando una funzione come CAST (). L’opzione Converti in SQL personalizzato è disponibile solo quando l’origine dati contiene una sola connessione. In questo caso, rimuovere la seconda connessione e quindi selezionare Dati > Converti in SQL personalizzato.