Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
Free Trial

Base de Connaissance

Apprenez auprès des experts.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index

Comment l'outil Jointure fonctionne et pourquoi vous pourriez obtenir plus d'enregistrements que prévu

Community_Admin
Alteryx
Alteryx
Créé
Comment l'outil Jointure fonctionne et pourquoi vous pourriez obtenir plus d'enregistrements que prévu

Tandis que l'outil Jointure est facilement l'un des outils les plus utilisés dans Alteryx, il peut également être l'un des plus mal compris. Cela est encore plus probable si un nouvel utilisateur n'a jamais utilisé des fonctions "joindre" dans autre plate-formes de manipulation de données ou il se joint à de grandes tables où il ne surveille pas la trace des enregistrements à l'intérieur des champs auxquels il se joint.

Ainsi, je vais couvrir trois cas différents que vous serez probable à rencontrer qui vous montrera comment joindre deux tables en utilisant un champ commun.

Le workflow que je vais couvrir (ci-joint dans cet article) est un workflow que j'ai fait en 10,5 et contient les mêmes visuels qui sont ci-dessous.

Cas #1: Joindre par champs qui ont tous les deux des enregistrements uniques

J1 .jpg

C'est le cas le plus simple et le plus facile à comprendre. Dans ce cas, nous faisons une "Jointure" par les champs nommés «fruit» dans les deux entrées. La jointure alignera les enregistrements des deux tables si les enregistrements dans les champs "fruit" correspondent.

Ainsi, la table jointe attendue (sortie J) devrait ressembler à ceci:

joinedtable1 .jpg

Assez simple

Cas #2: Joindre par champs où un seul a des enregistrements uniques

J2 .jpg

Pour ce cas, nous avons deux enregistrements pour "Banana" dans notre entrée gauche. Cela signifie que l'enregistrement avec "Banana" dans l'entrée de droite correspondra deux fois et sera ajouté aux deux enregistrements de l'entrée gauche. Notre Sortie devrait ressembler à ceci:

joinedtable2 .jpg

Cas #3: Joindre par champs qui ont tous les deux des enregistrements non uniques

Celui-ci peut être le plus difficile à comprendre, mais j'espère que, après avoir regardé cela visuellement et mathématiquement vous comprendrez pourquoi cela fait sens et ce que vous pouvez faire pour éviter les enregistrements indésirables.

J3 .jpg

Dans ce cas, nous avons deux enregistrements de «fruits» qui ont tous les deux «banane» dans les deux tableaux. La même chose se passe ici, tout comme le cas ci-dessus, sauf maintenant, il arrive deux fois parce que nous avons deux enregistrements de l'entrée droite qui correspondent à deux enregistrements de l'entrée de gauche. Ainsi, notre production aura un total de 4 enregistrements qui contiendront le mot «banane». La sortie devrait ressembler à ceci:

joinedtable3 .jpg

Pour examiner cela mathématiquement pour le cas #3 et le cas #2, vous saurez combien d'enregistrements vous obtiendrez pour chaque instance d'enregistrement en multipliant la quantité d'enregistrements qui apparaissent dans les deux tables. Dans l'exemple ci-dessus puisque nous faisons une "Jointure" sur "fruit" et nous voyons l'enregistrement "banana" deux fois dans les deux tables, vous pouvez le considérer comme 2 bananes x 2 bananes = 4 bananes.

Si nous ajoutons une autre rangée sur notre entrée droite comme ça:

leftinputtriple .jpg

Nous aurons maintenant 3 x 2 donc nous devrions nous attendre 6 combinaisons d'enregistrements avec "Banana" dans le champ "fruit"

joinedtable4 .jpg

bananes .jpg

Si vous avez joint deux tables et vous recevez beaucoup plus d'enregistrements, alors que vous vous attendiez pas, ceci est probablement la cause de votre problème. Si on ne comprend pas les cas présentés ci-dessus ,cela pourrait certainement rendre quel qu'un fou. Pour les meilleures pratiques, si j'étais vous, je suivrais ces deux étapes avant de joindre toutes autres tables:

première: Vérifiez vos tables pour des enregistrements en double.

Pour le cas ci-dessus, comme nous avons trois doublons qui viennent de notre entrée droite, nous pouvons simplement utiliser l'outil Unique et se débarrasser de ces doublons.

outil unique .jpg

La sortie sera exactement la même sortie que la sortie de cas #2 comme il n'y aura qu'un seul enregistrement de "Banana" après l'outil Unique.

2ème: Regardez si la "Joindre sur plusieurs champs" est l'option la plus appropriée.

Exemple: nous avons la table 1 avec deux enregistrements contenant « Banana » pour « fruit » et deux enregistrements contenant « X » pour « Store ID » avec « FruitID » correspondant à « fruit ». Le tableau 2 a les mêmes champs « fruit » et « Store ID », sauf que maintenant nous avons un champ « Store employees » qui s'associe au « Store ID ».

Entrée gauche .jpg employés de magasin .jpg

Tableau 1 tableau 2

Nous voulons que toutes ces données soient réunies pour qu'ils se correspondent correctement. Idéalement, nous ne devrions avoir que quatre enregistrements sortent de notre "jointure" comme nous voulons obtenir les "Store Employees" et "FruitID" champs dans une table. Par contre, si nous devions joindre à un seul champ commun, que ce soit "Store ID" ou "Fruit", nous obtiendrions des combinaisons et les données ne seraient pas alignées correctement. Voir ci-dessous.

Joindre sur "Fruit"

mismatchfruit .jpg

Dans ce cas, nous obtenons deux enregistrements où nos "Store ID" ne correspondent pas.

Joindre sur "StoreID"

mismatch2 .jpg

Dans ce cas, nous obtenons deux enregistrements où nos "Fruits" ne correspondent pas.

Pour corriger cela, nous allons configurer notre "Jointure" pour correspondre sur les champs "Fruits" et "Store ID"

joinconfig .jpg

Après avoir Exécuté, la table jointe devrait ressembler à ceci:

goodmatch .jpg

Lors de "jointure" avec plusieurs champs, nous nous assurons que les enregistrements de ces deux champs correspondent avant de "Joindre".

Un moyen facile de penser à cela est d'imaginer que "Fruits" et "Store ID" se font fusionner ensemble. Maintenant, nous avons des enregistrements uniques parce que nous aurions Banana X et Banana Y comme deux entités uniques et notre jointure va maintenant devenir un enregistrement 1 X enregistrement joint 1.

joinmatchmulti .jpg

10,5
Pièces jointes
contributeurs
Étiquettes