Combinaciones (join) y Uniones (union)

*Para evitar confusión voy a usar los nombres en inglés join y union como alternativa de combinaciones y uniones.

En la entrada anterior hemos hablado de los diferentes tipos de conexión. En este artículo cubriremos el tópico de joins, unions. Si es que estas trabajando con múltiples fuentes de datos, inevitablemente tendrás que indicarles como interactuar entre ellas. Joins y unions son las dos maneras que tenemos en Tableau para mezclar diferentes bases de datos, sin embargo, esto causa una serie de preguntas ¿Cuándo debo usar una join? ¿Qué tipo de join debo usar? ¿Cuándo debería usar unions?

Debo confesar que cuando yo comencé a usar Tableau nunca me hice estas preguntas. Durante los primeros meses que usé la herramienta gran parte del aprendizaje fue bajo intento y error, sin embargo, espero que al finalizar este blog tú tengas las herramientas para usar joins y unions con confianza.

Sin embargo, antes de entrar en detalle hay que precisar que este artículo esta pensado para cuando se trabaja con una fuente de datos con una estructura tabular, como es Excel (es decir, con filas y columnas). Bajo esta premisa, el punto principal es que la joins unen las fuentes de datos horizontalmente (más columnas), mientras que las unions unen a las fuentes de dato de manera vertical (más filas). Esto lo podemos ver reflejado también en Tableau al momento de ejecutar estas acciones:

Para realizar una join debo arrastrar mi segunda fuente de datos “al costado derecho” de la primera fuente de datos.

Por otra parte, para ejecutar una union debo colocar mi segunda base de datos “debajo” de la primera.

Te habrás dado cuenta como ahora se llama “orders +” y parece como si fueran múltiples fuentes de dato.

Joins

Como mencioné anteriormente, las joins interactúan con las columnas. Esto quiere decir que cuando juntamos dos fuentes de datos, básicamente estamos decidiendo cómo las columnas de estas fuentes de datos van a interactuar. Hay cuatro maneras que Tableau nos presenta para juntar estas fuentes de datos: interior, derecha, izquierda o exterior completo. 

Esto lo Podemos ver en el Diagrama de Venn que Tableau nos presenta al realizar joins:

Tipos de joins

Para efectos demostrativos consideremos las siguientes fuentes de dato:

Población de Europa

Densidad de población europea

Ahora, como ejemplo pensemos que estoy estudiando la población en España, Reino Unido y Alemania. Hasta ahora poseo la cantidad de población en cada país, pero me gustaría unirla a la base de datos de densidad para enriquecer mi análisis. Es en este caso que debemos usar joins ¿pero cuál?

Join izquierda

La join izquierda toma en consideración todo lo que tengo en mi tabla izquierda (la de población) y la conecta con los puntos en común que hay con mi tabla de la derecha (densidad). Debido a que hay solo tres países en la fuente de datos de la izquierda que también son compartidos con la base de datos de la derecha, si junto ambas tablas con una join por “Country”, el resultado será los tres países de mi primera fuente de dato con sus datos de población y densidad. Como mi fuente de dato de población no contiene ningún otro país compartido con la fuente de datos de densidad, la tabla no va a mostrar ningún valor nulo. Sin embargo, si tuviese un cuarto país en mi base de datos de población que no estuviese presente en mi base de datos de densidad (por ejemplo, Chile), este se mostraría con un resultado “nulo” para densidad. Esto lo veremos en mayor detalle en la join derecha.

Join izquierda

Join derecha

La join derecha es lo opuesto a la join izquierda. Esto quiere decir, que una join derecha tomará todos los datos de mi tabla de densidad y los juntará con los datos compartidos con mi tabla de población. Podemos ver que al juntar ambas tablas (con país como el punto en común) se crea una gran cantidad de “nulos”. Esto sucede porque mi tabla principal (mi tabla de densidad) posee una mayor cantidad de países que mi tabla de población, y como le he indicado a Tableau que mantenga todos mis países de mi tabla de densidad, se crean nulos en las filas donde la tabla de población no posee los mismos países. 

Join derecha

Join interior

Mientras que para este ejemplo la join izquierda nos entrega los resultados que buscamos (densidad y población de España, Alemania y Reino Unido), lo más correcto sería usar una join interior. La razón de esto es que si nuestra tabla de población hubiese tenido más países que nuestra tabla de densidad (el caso inverso de lo sucedido en el ejemplo anterior de la join derecha), el resultado de nuestra join nos hubiese entregado celdas con nulos. Por otra parte, una join interior solo retornará como resultado las filas en que ambas fuentes de datos tienen una columna con los mismos valores (en este caso país).

Join interior

Join exterior

Tal como mencioné en la introducción, las joins conectan dos tablas de manera horizontal (una al lado de la otra). Por lo tanto, la join exterior es la más sencilla de explicar ya que literalmente pone una tabla al lado de la otra. En este caso, como nuestra tabla de población no tiene ningún país que no este presente en nuestra tabla de densidad, el resultado de nuestra join exterior representa lo mismo que el de la join derecha.

Join exterior europa y densidad

Sin embargo, pongámonos en el caso de que estuviésemos comparando tablas de población entre África y Europa. Si es que realizamos una join exterior entre estas dos tablas veremos que el resultado es el equivalente a poner las tablas una al lado de la otra. Sin embargo, como las tablas no comparten nada en común se crean un número de celdas nulos equivalente al número de celdas de la tabla opuesta.

Join exterior entre población de Europa y población de África

Union

Mientras que las joins agregan más columnas a nuestra fuente de datos, las uniones agregan más filas. Esto significa que cuando aplicamos una unión entre dos o más fuentes de datos, estas se conectarán de manera vertical. Para esto las uniones pueden ser configuradas para juntar ambas fuentes de datos a través de encabezados del mismo nombre o por la posición de los encabezados en sus respectivas fuentes de datos. Volviendo a los ejemplos, si es que queremos comparar la población de los tres países de nuestra tabla europea, con los tres países de nuestra tabla de África, una unión por encabezado sería perfecta ya que ambas fuentes de datos comparten los mismos encabezados.

Unión entre ambas poblaciones

Sin embargo, si tratamos de realizar una unión entre nuestra tabla de población y la tabla de densidad, configurada por nombre de encabezado, en la práctica es similar a realizar una join exterior. Esto lo podemos comprobar al ver las celdas nulo que se generan debido a que las tablas no comparten nada en común.

Unión con columnas diferentes

Comentarios finales

Aquí termina la introducción al tópico de joins y unions. A medida que adquiramos más experiencia en Tableau y comencemos a manejar múltiples bases de datos será fundamental usar las joins y unions de manera correcta para evitar pérdidas o duplicaciones en nuestras fuentes de datos. En la próxima entrada cubriremos el tópico de blends, las cuales funcionan como joins pero solo a nivel de hoja de trabajo.

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *