Commande FUZZYJOIN
Utilise les correspondances approximatives pour combiner des champs de deux tables Analytics dans une nouvelle table Analytics unique.
Remarque
Pour détecter des valeurs presque identiques (doublons approximatifs) dans un seul champ de type caractère, consultez la section Commande FUZZYDUP.
Pour connaître les différentes options lors de la jointure de tables à l'aide des valeurs de champs clés correspondant exactement, consultez la rubrique Commande JOIN.
Syntaxe
FUZZYJOIN {DICE PERCENT pourcentage NGRAM longueur_n-grammes|LEVDISTANCE DISTANCE valeur} PKEY champ_clé_principal SKEY champ_clé_secondaire {FIELDS champs_principaux|FIELDS ALL} <WITH champs_secondaires|WITH ALL> <IF test> <OPEN> <FIRSTMATCH> TO nom_table <WHILE test> <FIRST plage|NEXT plage> <APPEND>
Remarque
Vous ne pouvez pas exécuter la commande FUZZYJOIN localement par rapport à une table de serveur.
Vous devez indiquer en entier le nom de la commande FUZZYJOIN. Vous ne pouvez pas l'abréger.
Paramètres
Nom | Description |
---|---|
DICE PERCENT pourcentage NGRAM longueur_n-grammes | LEVDISTANCE DISTANCE valeur |
L'algorithme de correspondance approximative à utiliser. DICE utilise l'algorithme du coefficient de Dice
LEVDISTANCE utilise l'algorithme de distance Levenshtein
|
PKEY champ_clé_principal |
Le champ clé, ou l'expression clé, de type caractère dans la table principale. Vous ne pouvez spécifier qu'un seul champ clé principal. |
SKEY champ_clé_secondaire |
Le ou les champs clés, ou l'expression clé, de type caractère dans la table secondaire. Vous ne pouvez spécifier qu'un seul champ clé secondaire. |
FIELDS champs_principaux | FIELDS ALL |
Les champs ou expressions de la table principale à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le champ clé principal si vous voulez l'intégrer dans la table jointe. Le fait d'indiquer ALL permet aussi de l'inclure. |
WITH champs_secondaires | WITH ALL optionnel |
Les champs ou expressions de la table secondaire à inclure dans la table de sortie jointe.
Remarque Vous devez indiquer de manière explicite le champ clé secondaire si vous voulez l'intégrer dans la table jointe. Le fait d'indiquer ALL permet aussi de l'inclure. |
IF test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée uniquement sur les enregistrements remplissant la condition. Remarque La condition IF est évaluée uniquement par rapport aux enregistrements restant dans une table après application des options relevant du champ d'application (WHILE, FIRST, NEXT). Remarque La condition IF peut faire référence à la table principale, à la table secondaire ou aux deux. |
OPEN optionnel |
Ouvre la table créée par la commande après l'exécution de la commande. Valide uniquement lorsque la commande crée une table de sortie. |
FIRSTMATCH optionnel |
Spécifie que chaque valeur de clé primaire n'est jointe qu'à la première occurrence d'une correspondance de clé secondaire. S'il se trouve que la première occurrence est une correspondance exacte, les correspondances approximatives suivantes pour la valeur de clé primaire ne sont pas incluses dans la table de sortie jointe. Si vous omettez FIRSTMATCH, le comportement par défaut de FUZZYJOIN consiste à joindre chaque valeur de clé primaire à toutes les occurrences des correspondances de clés secondaires. FIRSTMATCH est utile si vous voulez seulement savoir s'il existe des correspondances, exactes ou approximatives, entre deux tables, et si vous souhaitez réduire le temps de traitement nécessaire pour identifier toutes les correspondances. Vous pouvez également utiliser FIRSTMATCH si vous êtes certain qu'il n'existe qu'une seule correspondance dans la table secondaire pour chaque valeur de clé primaire. Remarque FIRSTMATCH n'est disponible qu'en tant que paramètre ACLScript. L'option n'est pas disponible dans l'interface utilisateur Analytics. |
TO nom_table |
Emplacement vers lequel envoyer les résultats de la commande :
|
WHILE test optionnel |
Expression conditionnelle qui doit être vraie afin de traiter chaque enregistrement. La commande est exécutée jusqu'à ce que la condition soit évaluée comme fausse ou lorsque la fin de la table est atteinte. Remarque Si vous utilisez WHILE conjointement avec FIRST ou NEXT, le traitement des enregistrements s'arrête dès qu'une limite est atteinte. |
FIRST plage | NEXT plage optionnel |
Le nombre d'enregistrements à traiter :
Utilisez plage pour indiquer le nombre d'enregistrements à traiter. Si vous ignorez FIRST et NEXT, tous les enregistrements sont traités par défaut. |
APPEND optionnel |
Ajoute la sortie de commande à la fin d'un fichier existant au lieu de remplacer ce fichier. Remarque Vous devez vous assurer que la structure de la sortie de la commande et du fichier existant est identique :
Analytics ajoute la sortie à un fichier existant sans tenir compte de sa structure, ce qui peut désordonner les données si la structure de la sortie et du fichier existant ne correspond pas. |
ISOLOCALE code_paramètres_régionaux optionnel |
Remarque Applicable dans l'édition Unicode d'Analytics uniquement. Paramètre système local au format langue_pays. Par exemple, pour utiliser le français canadien, saisissez fr_ca. Utilisez les codes suivants :
Si vous n'utilisez pas ISOLOCALE, ce sont les paramètres système régionaux par défaut qui sont utilisés. |
Exemples
Utilisez les correspondances approximatives pour joindre deux tables afin de détecter les employés susceptibles d'être des fournisseurs
L'exemple ci-dessous joint les tables Empmast et Fournisseur en utilisant l'adresse comme champ clé commun (champs Adresse et Rue_Fournisseur).
La commande FUZZYJOIN crée une nouvelle table avec des enregistrements primaires et secondaires qui sont des correspondances exactes ou approximatives. Le résultat est une liste de tous les employés et fournisseurs ayant soit une adresse identique, soit une adresse similaire.
FUZZYJOIN avec l'algorithme du coefficient de Dice
OPEN Empmast PRIMARY OPEN Fournisseur SECONDARY FUZZYJOIN DICE PERCENT 0,8000 NGRAM 2 PKEY Adresse SKEY Rue_Fournisseur FIELDS Numéro_Employé Prénom Nom Adresse WITH Numéro_fournisseur Nom_fournisseur Rue_Fournisseur OPEN TO "Correspondance_employé_fournisseur"
FUZZYJOIN avec l'algorithme de distance Levenshtein
OPEN Empmast PRIMARY OPEN Fournisseur SECONDARY FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Rue_Fournisseur FIELDS Numéro_Employé Prénom Nom Adresse WITH Numéro_fournisseur Nom_fournisseur Rue_Fournisseur OPEN TO "Correspondance_employé_fournisseur"
Inclure tous les champs
Cette version de la commande FUZZYJOIN inclut tous les champs des tables principale et secondaires dans la table de sortie jointe.
OPEN Empmast PRIMARY OPEN Fournisseur SECONDARY FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Adresse SKEY Rue_Fournisseur FIELDS ALL WITH ALL OPEN TO "Correspondance_employé_fournisseur"
Remarques
Remarque
Pour plus d'informations sur le fonctionnement de cette commande, consultez le Aide d'Analytics.
Respect de la casse
La commande FUZZYJOIN n'est pas sensible à la casse, quel que soit l'algorithme de correspondances approximatives que vous utilisez. "SMITH" est donc équivalent à "smith".
Espaces de début et de fin
La commande FUZZYJOIN tronque les espaces de début et de fin dans les champs de manière automatique, quel que soit l'algorithme de correspondances approximatives que vous utilisez. Il n'est pas nécessaire d'utiliser les fonctions TRIM( ) ou ALLTRIM( ) pour spécifier les champs clés principaux et secondaires.