Uniones en BigQuery: guía paso a paso

Al utilizar las uniones de BigQuery, puede combinar datos de varias tablas. Al unir tablas, puede consultar datos basándose en relaciones y correlaciones entre conjuntos de datos.

Sin embargo, es importante mencionar que hay algunos tipos de uniones en BigQuery SQL: INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN. Cada tipo de unión permite emparejar filas entre tablas de forma diferente.

En este artículo, encontrará un tutorial paso a paso sobre cómo utilizar las uniones de BigQuery para combinar datos de varias tablas. 

Nota: Si aún no sabes cómo escribir consultas SQL básicas, consulta este tutorial sobre cómo utilizar Sintaxis SQL de BigQuery antes de leer este artículo.

Guía de SQL Joins en BigQuery

Antes de empezar a escribir consultas utilizando las uniones de BigQuery, tenemos que entender cómo funcionan estos cuatro tipos de uniones y cómo se pueden utilizar para combinar datos en BigQuery.

INNER JOINjoin interno: el join interno compara filas entre dos tablas y devuelve sólo las filas coincidentes. Por lo tanto, al combinar los datos, dejará fuera todas las filas no coincidentes.

LEFT JOINUna unión a la izquierda hace coincidir todas las filas de la tabla izquierda aunque no exista ninguna fila coincidente en la tabla derecha. En este caso, BigQuery devolverá todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha.

UNIÓN A LA DERECHAes lo contrario de una unión a la izquierda. Hace coincidir todas las filas de la tabla derecha aunque no exista ninguna fila coincidente en la tabla izquierda.

JOIN COMPLETOUna unión completa combina uniones a la izquierda y a la derecha. Se devuelven todas las filas de ambas tablas independientemente de si coinciden o no.

Explicación de los tipos de uniones

He aquí una representación visual de estos cuatro tipos de unión.

Uniones BigQuery 1

Como puede ver, la unión interna devolverá sólo las filas coincidentes, una unión izquierda devolverá todas las filas de la tabla izquierda, una unión derecha devolverá todas las filas de la tabla derecha y una unión completa devolverá todas las filas de ambas tablas.

He aquí un ejemplo:

Uniones BigQuery 2

Supongamos que tengo estas dos tablas que contienen información sobre los equipos de baloncesto de la NCAA. Aunque estas tablas comparten la columna “Nombre”, también contienen algunos elementos diferentes. Combinaré los datos de estas dos tablas, uniendo la columna compartida “Nombre”.

Utilizando INNER JOIN, BigQuery devolvería sólo las filas coincidentes. Este es el resultado.

Uniones BigQuery 3

Como puede ver, BigQuery devolvió las filas coincidentes pero dejó fuera todas las filas no coincidentes.

Si utilizo LEFT join, BigQuery devolverá todas las filas de la tabla izquierda. Como resultado, dejará fuera todas las filas no coincidentes de la tabla derecha.

Uniones BigQuery 4

Al utilizar RIGHT JOIN, BigQuery devolverá todas las filas de la tabla de la derecha, dejando fuera las filas no coincidentes de la tabla de la izquierda.

Uniones BigQuery 5

Por último, FULL JOIN devolverá todas las filas de ambas tablas, incluidas las filas no coincidentes de ambos lados. 

Uniones BigQuery 6

En todos estos casos, BigQuery devolvería la palabra “null” para rellenar todas las coincidencias que faltan.

Ahora que ya conoces las diferencias entre estos tipos de join, aprenderemos a combinar datos utilizando estos joins de BigQuery.

INNER JOIN

En primer lugar, utilizaré la palabra clave INNER JOIN porque quiero que BigQuery devuelva sólo las filas coincidentes de dos tablas. Esta es la sintaxis que usaré:

Sintaxis INNER JOIN

SELECT nombre_columna(s)

DE tabla1

INNER JOIN tabla2

ON tabla1.nombre_columna = tabla2.nombre_columna;

Le mostraré cómo utilizar las uniones de BigQuery para combinar datos de estos conjuntos de datos de baloncesto de la NCAA. Mientras que una de las tablas contiene información sobre los equipos de la NCAA (mbb_teams), la otra tabla contiene datos sobre las mascotas de estos equipos.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots

INNER JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams

ON mascotas.nombre = equipos.nombre;

Vamos a desglosarlo:

1) En primer lugar, quiero seleccionar todas las columnas de los resultados. Voy a utilizar la cláusula SELECT *.

2) La cláusula FROM especifica la primera tabla de la unión. He utilizado un alias (AS) para dar a esta tabla un nombre temporal (“mascotas”), lo que me permite utilizar el alias más adelante en lugar de escribir el nombre completo de la tabla.

3) La cláusula INNER JOIN especifica la segunda tabla. También he utilizado un alias para nombrar esta tabla.

4) La sentencia ON es la condición que hace coincidir las columnas entre las dos tablas. En lugar de escribir el nombre de la tabla, he utilizado los alias seguidos de la columna “nombre”.

Uniones BigQuery 7

LEFT JOIN

Después de aprender a utilizar la sentencia INNER JOIN, puede escribir fácilmente una consulta LEFT JOIN siguiendo el mismo patrón.

Sintaxis LEFT JOIN

SELECT nombre_columna(s)

DE tabla1

LEFT JOIN tabla2

ON tabla1.nombre_columna = tabla2.nombre_columna;

Aquí está la fórmula completa.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots

LEFT JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams

ON mascotas.nombre = equipos.nombre;

Uniones BigQuery 8

SELECT nombre_columna(s)

DE tabla1

RIGHT JOIN tabla2

ON tabla1.nombre_columna = tabla2.nombre_columna;

Este es el aspecto que tendría la consulta.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots

RIGHT JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams

ON mascotas.nombre = equipos.nombre;

Uniones BigQuery 9

JOIN COMPLETO

Por último, podemos utilizar FULL JOIN para escribir una consulta que devuelva todas las filas de ambas tablas, independientemente de si coinciden o no. Esta es la sintaxis de FULL JOIN.

Sintaxis FULL JOIN

SELECT nombre_columna(s)

DE tabla1

FULL JOIN tabla2

ON tabla1.nombre_columna = tabla2.nombre_columna;

Así sería la consulta completa.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots

FULL JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams

ON mascotas.nombre = equipos.nombre;

Uniones BigQuery 10

Recuerde que puede combinar las cláusulas JOIN con otras sentencias. Por ejemplo, podría combinar estas dos tablas y utilizar WHERE para filtrar datos específicos. Digamos que quiero que BigQuery me devuelva sólo las mascotas que empiecen por la letra “A”.

SELECCIONAR * 

FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots

FULL JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams

ON mascotas.nombre = equipos.nombre

WHERE mascota LIKE ‘A%’;

Uniones en BigQuery: guía paso a paso

Ahí lo tiene. Así es como puede utilizar las uniones de BigQuery para combinar datos de varias tablas. Si quieres aprender más sobre BigQuery, echa un vistazo a este artículo sobre cómo utilizar Sintaxis SQL de BigQuery para escribir sus primeras consultas.

Gestione fácilmente grandes conjuntos de datos

Utiliza Sheetgo para conectar BigQuery con Google Sheets y manejar grandes volúmenes de datos de forma eficiente.

También te puede gustar...

Más allá de la RPA: Por qué el futuro de la automatización de hojas de cálculo pasa por los datos

Ha buscado "RPA" para eliminar tareas repetitivas. Pero ¿y si el problema no es la tarea, sino los datos? El "reflejo RPA" Todo equipo...

Cómo conectar el lago a los usuarios de la empresa con una base de datos sin código

Ha invertido en un Lakehouse moderno. Por qué su equipo financiero sigue pidiendo exportaciones CSV? La paradoja de los datos modernos Ha...
datascience

Gestión de inventarios de joyería: cómo elegir el sistema adecuado

La gestión del inventario de joyería es más compleja que en otros sectores. Con artículos de gran valor, materias primas preciosas e intrincados...