Comando FUZZYJOIN

Utiliza la correspondencia inexacta para combinar campos de dos tablas de Analytics en una nueva tabla única de Analytics.

Nota

Para detectar valores casi idénticos (duplicados inexactos) en un único campo de caracteres, consulte Comando FUZZYDUP.

Para ver diferentes opciones al unir tablas con valors de campo clave con una correspondencia exacta, consulte Comando JOIN.

Sintaxis

FUZZYJOIN {DICE PERCENT porcentaje NGRAM longitud_n-grama|LEVDISTANCE DISTANCE valor} PKEY campo_clave_primario SKEY campo_clave_secundario {FIELDS campos_primarios|FIELDS ALL} <WITH campos_secundarios|WITH ALL> <IF prueba> <OPEN> <FIRSTMATCH> TO nombre_tabla <WHILE prueba> <FIRST rango|NEXT rango> <APPEND>

Nota

No puede ejecutar el comando FUZZYJOIN de forma local en una tabla de servidor.

Debe especificar el nombre del comando FUZZYJOIN completo. No puede abreviarlo

Parámetros

Nombre Descripción
DICE PERCENT porcentaje NGRAM longitud_n-grama | LEVDISTANCE DISTANCE valor

El algoritmo de correspondencia inexacta que se debe usar.

DICE utiliza el algoritmo del coeficiente de Dice

  • PERCENT porcentaje el coeficiente de Dice mínimo permitido de dos cadenas para que se las considere como duplicados inexactos¡

    Especifique una fracción decimal, de 0,0000 a 1,0000 (por ejemplo: 0,7500). Utilice un máximo de cuatro lugares decimales.

    Al reducir el valor aumenta la cantidad de correspondencias porque se incluyen correspondencias con un mayor grado de inexactitud; es decir, cadenas que difieren más entre sí.

  • NGRAM longitud_n-grama la longitudn-grama que se debe usar

    Especifique un número entero, 1 o superior.

    El incremento de la longitud n-grama hace que el criterio para la similitud entre ambas cadenas sea más estricto.Los

    n-gramas son subcadenas (bloques de caracteres) que se superponen y en los que las cadenas de comparación se dividen como parte del cálculo del coeficiente de Dice.

    Nota

    Al especificar DICE, el comando FUZZYJOIN utiliza la función DICECOEFFICIENT( ) en un enunciado IF para unir de manera condicional los valores del campo clave. Si desea obtener información detallada sobre la función, consulte Función DICECOEFFICIENT( ).

LEVDISTANCE utilice el algoritmo de distancia de Levenshtein

  • DISTANCE valor la máxima distancia de Levenshtein permitida entre dos cadenas para que se las considere un duplicado inexacto

    Especifique un número entero, 1 o superior.

    Al incrementar el valor, aumenta la cantidad de correspondencias porque se incluyen valores con un mayor grado de diferencias; es decir valores que difieren más entre sí.

    Nota

    Al especificar LEVDISTANCE, el comando FUZZYJOIN utiliza la función LEVDIST( ) en un enunciado IF para unir de manera condicional los valores del campo clave. Si desea obtener información detallada sobre la función, consulte Función LEVDIST( ).

    A diferencia de la función, el algoritmo de la distancia de Levenshtein del comando FUZZYJOIN recorta automáticamente los espacios en blanco iniciales y finales, y no distingue entre mayúsculas y minúsculas.

PKEY campo_clave_primario

La expresión o el campo clave de caracteres de la tabla primaria.

Puede especificar únicamente un campo clave primario.

SKEY campo_clave_secundario

La expresión o el campo clave de caracteres de la tabla secundaria.

Puede especificar únicamente un campo clave secundario.

FIELDS campos_primarios | FIELDS ALL

Los campos o expresiones de la tabla primaria que deben incluirse en la tabla de salida unida.

  • campos_primarios incluya el o los campos especificados
  • ALL incluya todos los campos de la tabla

Nota

Debe especificar explícitamente el campo clave primario si desea incluirlo en la tabla unida. Si especifica ALL, también se lo incluye.

WITH campos_secundarios | WITH ALL

opcional

Los campos o expresiones de la tabla secundaria que deben incluirse en la tabla de salida unida.

  • campos_secundarios incluya el o los campos especificados
  • ALL incluya todos los campos de la tabla

Nota

Debe especificar explícitamente el campo clave secundario si desea incluirlo en la tabla unida. Si especifica ALL, también se lo incluye.

IF prueba

opcional

Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta únicamente en los registros que cumplen la condición.

Nota

El parámetro IF se evalúa únicamente con los registros que quedan en la tabla después de aplicar los parámetros de alcance (WHILE, FIRST, NEXT).

Nota

La condición IF puede hacer referencia a la tabla primaria, a la tabla secundaria o a ambas.

OPEN

opcional

Abre la tabla creada por el comando después de la ejecución del comando. Solo es válido si el comando crea una tabla de salida.

FIRSTMATCH

opcional

Especifica que cada valor clave primario se une exclusivamente a la primera instancia de cualquier clave secundaria correspondiente.

Si la primera instancia es una correspondencia exacta, las correspondencias inexactas posteriores del valor clave primario no se incluyen en la tabla de salida unida.

Si omite FIRSTMATCH, el comportamiento predeterminado de FUZZYJOIN es unir cada valor clave primario con todas las instancias de cualquier correspondencia de clave secundaria.

FIRSTMATCH es útil si solo desea saber si existe alguna correspondencia, exacta o inexacta, entre dos tablas, y desea reducir el tiempo de procesamiento necesario para identificar todas las correspondencias.

También puede usar FIRSTMATCH si está seguro de que, como máximo, existe solo una correspondencia en la tabla secundaria para cada valor de clave primaria.

Nota

FIRSTMATCH está disponible únicamente como un parámetro de ACLScript. La opción no está disponible en la interfaz de usuario de Analytics.

TO nombre_tabla

El lugar al que se deben enviar los resultados del comando:

  • nombre_tabla guarda los resultados en una tabla de Analytics

    Especifique el nombre_tabla como una cadena entre comillas con la extensión de archivo .FIL. Por ejemplo: TO "Salida.FIL"

    Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la carpeta que contiene el proyecto de Analytics.

    Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una carpeta existente o una diferente:

    • TO "C:\Salida.FIL"
    • TO "Resultados\Salida.FIL"

    Nota

    Los nombres de las tablas tienen un límite de 64 caracteres alfanuméricos, sin incluir la extensión .FIL. El nombre puede incluir un guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni espacios. El nombre no puede comenzar con un número.

WHILE prueba

opcional

Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al final de la tabla.

Nota

Si usa WHILE junto con FIRST o NEXT, el procesamiento de registros se detiene al llegar a un límite.

FIRST rango | NEXT rango

opcional

La cantidad de registros que se procesarán:

  • FIRST comienza a procesar desde el primer registro hasta que se llega al número de registros especificado
  • NEXT comienza a procesar desde el registro seleccionado actualmente hasta que se llega al número de registros especificado

Utilice intervalo para especificar la cantidad de registros que se deben procesar.

Si omite FIRST y NEXT, se procesan todos los registros de forma predeterminada.

APPEND

opcional

Anexa la salida del comando al final de un archivo existente en lugar de sobrescribir el archivo.

Nota

Debe asegurarse de que la estructura de la salida del comando y del archivo existente sean idénticas:

  • los mismos campos
  • el mismo orden de campos
  • los campos coincidentes son de la misma longitud
  • los campos coincidentes tienen el mismo tipo de datos

Analytics anexa la salida a un archivo existente sin importar cuál sea su estructura. Si la estructura de la salida y la del archivo existente no coinciden, es posible que los datos que se obtengan estén incompletos, mezclados o sean imprecisos.

ISOLOCALE código_lugar

opcional

Nota

Aplicable únicamente en la edición Unicode de Analytics.

El idioma (configuración regional) del sistema en el formato idioma_país. Por ejemplo, para francés de Canadá, ingrese el código fr_ca.

Use los siguientes códigos:

  • idioma códigos de idioma estándar ISO 639
  • país códigos de país estándar ISO 3166

    Si no especifica un código de país, se utiliza el país predeterminado para el idioma.

Si no utiliza ISOLOCALE, se utiliza la configuración regional predeterminada del sistema.

Ejemplos

Utilice la correspondencia inexacta para unir dos tablas como una forma de descubrir empleados que también puedan ser proveedores

El siguiente ejemplo une las tabla Empmast y Proveedor utilizando el domicilio como el campo clave común (los campos Domicilio y Calle_proveedor).

El comando FUZZYJOIN crea una nueva tabla con registros primarios y secundarios con una correspondencia exacta o una correspondencia inexacta. El resultado es una lista de todos los empleados y proveedores que tienen el mismo domicilio o un domicilio similar.

FUZZYJOIN con el algoritmo de coeficiente de Dice

OPEN Empmast PRIMARY
OPEN Proveedor SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Domicilio SKEY Calle_proveedor FIELDS Número_empleado Nombre Apellido Domicilio WITH Número_proveedor Nombre_proveedor Calle_proveedor OPEN TO "Correspondencia_empleado_proveedor"

FUZZYJOIN con el algoritmo de distancia de Levenshtein

OPEN Empmast PRIMARY
OPEN Proveedor SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Domicilio SKEY Calle_proveedor FIELDS Número_empleado Nombre Apellido Domicilio WITH Número_proveedor Nombre_proveedor Calle_proveedor OPEN TO "Correspondencia_empleado_proveedor"

Incluir todos los campos

Esta versión del comando FUZZYJOIN incluye todos los campos de las tablas primaria y secundaria en la tabla de salida unida.

OPEN Empmast PRIMARY
OPEN Proveedor SECONDARY
FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Domicilio SKEY Calle_proveedor FIELDS ALL WITH ALL OPEN TO "Correspondencia_empleado_proveedor"

Observaciones

Nota

Si desea obtener más información sobre la forma en la que funciona este comando, consulte Guía de ayuda.

Coincidir mayúsc.-minúsc.

El comando FUZZYJOIN no distingue entre mayúsculas y minúsculas, sin importar qué algoritmo de correspondencia inexacta utilice. Por lo tanto, "SMITH" equivale a "smith."

Espacios en blanco iniciales y finales

El comando FUZZYJOIN recorta automáticamente los espacios en blanco al principio y al final de los campos, sin importar qué algoritmo de correspondencia utilice. No es necesario usar las funciones TRIM( ) o ALLTRIM( ) al especificar los campos clave primario y secundario.