Problemen met joins oplossen
Opmerking: Als uw join data verkeerd telt, kan dit een teken zijn dat u in plaats daarvan een relatie moet gebruiken. Zie Uw data relateren voor meer informatie over relaties. Zie Kardinaliteit en referentiële integriteit voor informatie over hoe Tableau omgaat met het combineren van data uit verschillende detailniveaus (zoals veel-op-veel-relaties),
Overmatige telling van waarden of dubbele data
Wanneer u verbinding maakt met meerdere tabellen en er join van maakt, stelt u een gedenormaliseerde versie van de data op. In sommige gevallen behandelt Tableau meerdere tabellen als één tabel. Wanneer meerdere tabellen als één tabel worden behandeld, nadat een join is gemaakt van de tabellen, worden op alle tabellen query's uitgevoerd. Hierdoor kunnen er te veel waarden worden geteld.
Stel dat u bijvoorbeeld twee tabellen hebt. De eerste tabel bevat werknemersdata, zoals de werknemers-ID en het salaris. De tweede tabel bevat organisatorische informatie, zoals afdelingsnamen.
Tabel 1
| Tabel 2
|
Als u een join van deze tabellen maakt op Werknemers-ID, wordt het salaris van een werknemer meer dan één keer meegerekend, omdat de werknemer aan meerdere afdelingen is gekoppeld.
Werknemers-ID | Naam | Salaris | Afdeling | Indiensttredingsdatum | Organisatie |
20107 | Wilson, Henry | 61000 | Ondersteuning | 28-7-2015 | Activiteiten |
20107 | Wilson, Henry | 61000 | Verkoop | 25-8-2016 | Activiteiten |
Dit is een voorbeeld van een-op-veel-kardinaliteit (één werknemers-ID in Tabel 1 heeft meerdere resultaten in Tabel 2). Zie Relatiequery's optimaliseren met prestatieopties voor meer informatie over kardinaliteit tussen tabellen.
Om dit probleem op te lossen, kunt u het volgende doen:
De data relateren: In plaats van een join te maken, waardoor uw data mogelijk worden gedupliceerd, kunt u relaties gebruiken. Zie Uw data relateren voor meer informatie.
De aggregatie wijzigen: Afhankelijk van uw analyse kunt u de MIN- of AVG-aggregatie gebruiken om overtelling te voorkomen.
Als u bijvoorbeeld de aggregatie van Salaris wijzigt van SUM naar MIN of van SUM naar AVG.
Een berekend veld maken dat de dubbele waarden verwijdert: U kunt een berekening maken waarmee u de som van het veld dat wordt gedupliceerd, deelt door het aantal instanties van het veld dat de duplicatie veroorzaakt.
De waarden voor Salaris worden bijvoorbeeld gedupliceerd door het aantal instanties van Werknemers-ID voor Wilson, Henry. Vervang in dit geval Salaris in de weergave door een berekend veld dat de volgende formule gebruikt:
SUM ([Salary])/ COUNT ([Employee ID])
.U kunt ook een LOD-expressie gebruiken om dubbele data te verwijderen. Zie Dubbele data verwijderen met LOD-berekeningen(Link wordt in een nieuw venster geopend) in de Tableau-knowledgebase voor meer informatie.
Aangepaste SQL gebruiken: Tableau ondersteunt het gebruik van aangepaste SQL voor verbinding met meerdere tabellen in een databron. U kunt de tabellen vooraf aggregeren voordat u er een join van maakt met een GROUP BY-clausule. Voor deze optie is enige kennis van het schrijven van SQL-query's vereist en indien mogelijk hulp van een database-expert. Zie Verbinding maken met een aangepaste SQL-query voor meer informatie over hoe u verbinding kunt maken met een aangepaste SQL-query vanuit Tableau.
Gebroken tabeljoins en joins op basis van meerdere databases
Voordat u joins maakt van tabellen (uit dezelfde databron of via een join op basis van meerdere databases), moet u controleren of de datatypen van de join-sleutels overeenkomen. Als de datatypen van de join-sleutels niet overeenkomen, zal de join niet meer werken. Dit wordt aangegeven met een rood uitroepteken en de foutmelding 'Type mismatch tussen joinvelden'. Om een gebroken join te herstellen, kunt u een van de volgende suggesties gebruiken:
U kunt de opmaak van een veld (inclusief het datatype) in het dialoogvenster Een join maken wijzigen om ervoor te zorgen dat de join-sleutels overeenkomen door een joinberekening te maken. Een joinberekening ondersteunt een subset van berekeningen waarmee u de opmaak van de join-sleutel in een of meer tabellen die u wilt combineren, kunt wijzigen. Om een joinberekening te maken, klikt u op het pictogram Een join maken tussen de tabellen met een gebroken join, klikt u op het veld waarvan de opmaak moet worden gewijzigd en selecteert u vervolgens Joinberekening maken. Zie Problemen met joins oplossen voor meer informatie.
Voor tekst- of Excel-data wijzigt u het datatype van een van de tekst- of Excel-velden in de join-sleutel met behulp van het menu Datatype in het dataraster.
Alleen Tableau Desktop: Voor de meeste verbindingen kunt u de optie Naar aangepaste SQL converteren gebruiken om het datatype van een van de velden in de join-sleutel te wijzigen met behulp van een functie als CAST (). De optie Naar aangepaste SQL converteren is alleen beschikbaar als de databron slechts één verbinding bevat. Verwijder in dit geval de tweede verbinding en selecteer vervolgens Data > Naar aangepaste SQL converteren.