Free Trial

Base de conocimiento

Cómo funciona la herramienta Unir y por qué estás obteniendo más registros de lo esperado

Community_Admin
Alteryx
Alteryx
Created

Aunque la herramienta Unir es fácilmente una de las herramientas más utilizadas en Alteryx, puede ser también una de las más incomprendidas. Esto es más cierto si los usuarios nuevos no han utilizado uniones anteriormente en ningún otra plataforma de manipulación de datos o si están uniendo tablas grandes donde no están rastreando los registros dentro de los campos que están uniendo.

 

Por lo tanto, repasaré tres casos diferentes de unión de dos tablas en un campo común que puedes encontrar y qué esperar en tus resultados.

El flujo que repasaré (adjunto en este artículo) es un flujo que creé en 10.5 y contiene algunas imágenes que están a continuación.

 

Caso #1: Unir campos que tienen registros únicos

J1.jpg

 

Este caso es el más simple y el más sencillo de comprender. En este caso, estamos uniendo los campos llamados “Fruit” en ambas entradas. La unión alineará los registros de ambas tablas si los registros de los campos “Fruit” coinciden.

 

Así que, la tabla unida esperada (Salida J) debería verse así:

 

joinedtable1.jpg

Bastante sencillo

 

Caso #2: Unir campos donde solo uno tiene registros únicos

J2.jpg

 

Para este caso, tenemos dos registros de “Banana” en nuestra entrada Izquierda (L). Esto significa que el registro con “Banana” en la entrada Derecha coincidirá dos veces y se anexará a ambos registros de la entrada Izquierda. Nuestra Salida debería verse así:

 

joinedtable2.jpg

 

Caso #3: Unir campos que tienen registros no únicos

Este puede ser el más difícil de comprender pero, con suerte, luego de observarlo visual y matemáticamente, entenderás por qué tiene sentido y qué puedes hacer para evitar registros no deseados.

 

J3.jpg

En este caso, tenemos dos registros en “Fruit” que tienen “Banana” en ambas tablas. Aquí pasa lo mismo que en el caso anterior, excepto que ahora pasa dos veces porque tenemos dos registros de la entrada Derecha que coinciden con dos registros de la entrada Izquierda. Por lo tanto, nuestra salida tendrá un total de 4 registros que tienen la palabra “Banana” en ellos.  La salida debería verse así:

 

joinedtable3.jpg

 

Para verlo de manera matemática para el Caso #3 y el Caso #2, sabrás cuántos registros obtendrás por cada instancia de registro multiplicando la cantidad de registros que aparecen en ambas tablas. En el ejemplo anterior, ya que estamos uniendo “Fruit” y vemos el registro banana dos veces en ambas tablas, puedes pensarlo como 2 bananas x 2 bananas=4 bananas.

 

Si agregáramos otra fila en nuestra entrada Derecha, como esta:

leftinputtriple.jpg

 

Ahora tenemos 3 x 2, así que deberíamos esperar 6 combinaciones de registros con “Banana” en el campo “Fruit”

 

joinedtable4.jpg

 

 bananas.jpg

 

Si has unido dos tablas y estás obteniendo más registros de lo que esperabas, entonces estó es probablemente la causa de tu problema. Si no entiendes los casos presentados anteriormente, eso podría eloqucer a cualquiera. En cuanto a mejores prácticas, yo seguiría estos dos pasos antes de unir cualquier tabla:

 

1ro: Revisa tus tablas por registros duplicados.

Para el caso anterior, como tenemos tres duplicados de nuestra entrada derecha, podemos usar la herramienta Único y deshacernos de esos duplicados.

unique tool.jpg

La salida será la misma que la del Caso #2 ya que habrá solo un registro de “Banana” luego de usar la herramienta Único.

 

2do: Determina si Unir múltiples campos es la opción más apropiada.

Ejemplo: tenemos la Tabla 1 con dos registros que contienen ‘Banana’ en “Fruit” y dos registros que contienen ‘X’ en “Store ID” con “Fruit ID” que corresponde con “Fruit”.  La Tabla 2 tiene los dos mismos campos “Fruit” e “Store ID”, excepto que ahora tenemos un campo “Store employees” que se acopla con “Store ID”.

 

 Left input.jpg                                        store employees.jpg

                        Tabla 1 Tabla 2

 

Queremos tener todos los datos juntos para que se acoplen bien.  Idealmente deberíamos solo tener cuatro registros como resultado de nuestra unión ya que queremos obtener los campos “Store Employees” y “FruitID” en una tabla. Sin embargo, si quisiéramos solo unir un campo común, ya sea “Store ID” o “Fruit”, obtendríamos combinaciones y los datos no estarían alineados de manera correcta. Consultar a continuación.

 

Unir “Fruit”

mismatchfruit.jpg

 

En este caso, obtenemos dos registros en los que los registros de "Store ID" no coinciden.

 

Unir “StoreID”

mismatch2.jpg

 

En este caso, obtenemos dos registros en los que los registros de "Fruit" no coinciden.

Para corregirlo, configuraremos nuestra unión para hacer coincidir los campos de "Fruit" y de "Store ID".

 

joinconfig.jpg

 

Luego de ejecutarlo, la tabla unida debería verse así:

goodmatch.jpg

 

Al unir campos múltiples, nos aseguramos que los registros de ambos campos coinciden antes de unir.

Una manera fácil de entenderlo es imaginar que “Fruit” y "Store ID” se están fusionando. Ahora tendremos registros únicos porque tendríamos Banana X y Banana Y como dos entidades únicas y nuestra unión se convertirá en una unión de 1 registro x 1 registro.

 

joinmatchmulti.jpg