Uniões do BigQuery: um guia passo a passo

Ao usar as uniões do BigQuery, você pode combinar dados de várias tabelas. Ao unir tabelas, você pode consultar dados com base em relacionamentos e correlações entre conjuntos de dados.

No entanto, é importante mencionar que há alguns tipos de junções no BigQuery SQL: INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL JOIN. Cada tipo de união permite que você combine linhas entre tabelas de forma diferente.

Neste artigo, você encontrará um tutorial passo a passo sobre como usar as uniões do BigQuery para combinar dados de várias tabelas. 

Observação: Se você ainda não sabe como escrever consultas SQL básicas, confira este tutorial sobre como usar Sintaxe SQL do BigQuery antes de ler este artigo.

Um guia para junções de SQL no BigQuery

Antes de começarmos a escrever consultas usando as uniões do BigQuery, precisamos entender como esses quatro tipos de uniões funcionam e como você pode usá-los para mesclar dados no BigQuery.

INNER JOINO que é uma junção interna: a junção interna faz a correspondência de linhas entre duas tabelas e retorna apenas as linhas correspondentes. Portanto, quando você combinar os dados, ele deixará de fora todas as linhas não correspondentes.

JUNÇÃO ESQUERDAA união à esquerda corresponde a todas as linhas da tabela da esquerda, mesmo que não exista nenhuma linha correspondente na tabela da direita. Aqui, o BigQuery retornará todas as linhas da tabela da esquerda e as linhas correspondentes da tabela da direita.

RIGHT JOIN: é o oposto de uma união à esquerda. Ela corresponde a todas as linhas da tabela da direita, mesmo que não exista nenhuma linha correspondente na tabela da esquerda.

JUNÇÃO COMPLETAUma união completa combina uniões à esquerda e à direita. Todas as linhas de ambas as tabelas são retornadas, independentemente de serem correspondentes.

Explicação dos tipos de união

Aqui está uma representação visual desses quatro tipos de união.

BigQuery Joins 1

Como você pode ver, a união interna retornará apenas as linhas correspondentes, uma união esquerda retornará todas as linhas da tabela esquerda, uma união direita retornará todas as linhas da tabela direita e uma união completa retornará todas as linhas de ambas as tabelas.

Veja um exemplo:

BigQuery Joins 2

Digamos que eu tenha essas duas tabelas contendo informações sobre os times de basquete da NCAA. Embora essas tabelas compartilhem a coluna “Name”, elas também contêm alguns itens diferentes. Combinarei os dados dessas duas tabelas, unindo a coluna “Name” compartilhada.

Ao usar INNER JOIN, o BigQuery retornaria apenas as linhas correspondentes. Aqui está a aparência do resultado.

BigQuery Joins 3

Como você pode ver, o BigQuery retornou as linhas correspondentes, mas deixou de fora todas as linhas não correspondentes.

Se eu usar a união LEFT, o BigQuery retornará todas as linhas da tabela da esquerda. Como resultado, ele deixará de fora todas as linhas não correspondentes da tabela da direita.

BigQuery Joins 4

Ao usar RIGHT JOIN, o BigQuery retornará todas as linhas da tabela da direita, deixando de fora as linhas sem correspondência da tabela da esquerda.

BigQuery Joins 5

Por fim, o FULL JOIN retornará todas as linhas de ambas as tabelas, incluindo as linhas não correspondentes em ambos os lados. 

Junções do BigQuery 6

Em todos esses casos, o BigQuery retornaria a palavra “null” para preencher todas as correspondências ausentes.

Agora que você conhece as diferenças entre esses tipos de união, aprenderemos a combinar dados usando essas uniões do BigQuery.

INNER JOIN

Primeiro, usarei a palavra-chave INNER JOIN porque quero que o BigQuery retorne apenas as linhas correspondentes de duas tabelas. Aqui está a sintaxe que usarei:

Sintaxe de INNER JOIN

SELECT nome_da_coluna(s)

FROM table1

INNER JOIN tabela2

ON table1.column_name = table2.column_name;

Mostrarei como usar as uniões do BigQuery para combinar dados desses conjuntos de dados de basquete da NCAA. Enquanto uma das tabelas contém informações sobre as equipes da NCAA (mbb_teams), a outra tabela contém dados sobre os mascotes dessas equipes.

SELECT * 

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

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

ON mascots.name = teams.name;

Vamos detalhar isso:

1) Primeiro, quero selecionar todas as colunas dos resultados. Usarei a cláusula SELECT *.

2) A cláusula FROM especifica a primeira tabela na união. Usei um alias (AS) para dar a essa tabela um nome temporário (“mascots”), o que me permite usar o alias mais tarde em vez de escrever o nome completo da tabela.

3) A cláusula INNER JOIN especifica a segunda tabela. Também usei um alias para nomear essa tabela.

4) A instrução ON é a condição que faz a correspondência das colunas entre as duas tabelas. Em vez de escrever o nome da tabela, usei os aliases seguidos da coluna: “name” (nome).

Junções do BigQuery 7

JUNÇÃO ESQUERDA

Depois de aprender a usar a instrução INNER JOIN, você pode escrever facilmente uma consulta LEFT JOIN seguindo o mesmo padrão.

Sintaxe de LEFT JOIN

SELECT nome_da_coluna(s)

FROM table1

LEFT JOIN tabela2

ON table1.column_name = table2.column_name;

Aqui está a fórmula completa.

SELECT * 

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

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

ON mascots.name = teams.name;

Junções do BigQuery 8

SELECT nome_da_coluna(s)

FROM table1

RIGHT JOIN table2

ON table1.column_name = table2.column_name;

Esta é a aparência da consulta.

SELECT * 

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

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

ON mascots.name = teams.name;

Junções do BigQuery 9

JUNÇÃO COMPLETA

Por fim, podemos usar o FULL JOIN para escrever uma consulta que retorne todas as linhas de ambas as tabelas, independentemente de haver correspondência entre elas. Veja a seguir a sintaxe do FULL JOIN.

Sintaxe de FULL JOIN

SELECT nome_da_coluna(s)

FROM table1

FULL JOIN tabela2

ON table1.column_name = table2.column_name;

Essa é a aparência da consulta completa.

SELECT * 

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

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

ON mascots.name = teams.name;

Junções do BigQuery 10

Lembre-se de que você pode combinar cláusulas JOIN com outras instruções. Por exemplo, eu poderia combinar essas duas tabelas e usar WHERE para filtrar dados específicos. Digamos que eu queira que o BigQuery retorne apenas os mascotes que começam com a letra “A”.

SELECT * 

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

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

ON mascotes.name = equipes.name

WHERE mascote LIKE ‘A%’;

Uniões do BigQuery: um guia passo a passo

É isso aí! É assim que você pode usar as uniões do BigQuery para combinar dados de várias tabelas. Se você quiser saber mais sobre o BigQuery, confira este artigo sobre como usar o Sintaxe SQL do BigQuery para escrever suas primeiras consultas.

Gerencie grandes conjuntos de dados com facilidade

Use o Sheetgo para conectar o BigQuery ao Google Sheets e lidar com dados extensos de forma eficiente

Você também pode gostar...

Além da RPA: Por que o futuro da automação de planilhas prioriza os dados

Você procurou por "RPA" para eliminar tarefas repetitivas. Mas e se o problema não for a tarefa, mas os dados? O "Reflexo da RPA" Toda equipe...

Como conectar seu lakehouse aos usuários corporativos - com uma base de dados sem código

Você investiu em um Lakehouse moderno. Por que sua equipe financeira ainda pede exportações em CSV? O paradoxo dos dados modernos Você criou um sistema de...
ciência de dados

Gerenciamento de estoque de joias: como escolher o sistema certo

O gerenciamento do estoque de joias é mais complexo do que em outros setores. Com itens de alto valor, matérias-primas preciosas e suprimentos complexos...