O que você vai aprender?
Uma junção cartesiana é uma junção de cada linha de uma tabela a cada linha de outra tabela, essa junção pode ter diversas utilidades e hoje aprenderemos a como cria-la no tableau prep.
Introdução:
No nosso exemplo teremos uma base fictícia de vendas, com dados de categorias, data e hora, valores e quantidades. Nossa base tem dados de hora em hora, porém só temos linhas preenchidas para cada valor de categoria quando uma transação foi feita. Nós precisamos que exista pelo menos uma linha para cada categoria independente de existir ou não uma transação naquela hora. Aí que entra a necessidade de um cartesiano.
Passo 1: Criando novas linhas
A primeira coisa que devemos pensar no nosso caso é como criar linhas novas para cada ocorrência de data e hora. Então o primeiro passo realmente será criar essas linhas.
Vamos criar um campo chamado de campo 0, onde podemos definir qualquer valor para as novas linhas. Vamos escolher o valor 0.
Passo 2: Agregando valores
Usaremos esse campo para agregar os valores de data e os valores de categoria conseguindo uma linha para cada data e uma linha para cada categoria, assim já fazendo metade do nosso trabalho. Para agregar usaremos a ferramenta de agregar com as configurações a seguir.
E a segunda agregação.
Não se incomode com a falta dos outros campos. Nós não levamos eles em consideração enquanto criamos nosso cartesiano, nessa etapa só devemos garantir que exista uma única linha para cada combinação de categoria e horário.
Passo 3: Join cartesiano
Então vamos unir essas duas agregações que já tem uma linha para cada um!
Uniremos obviamente por Campo 0, e faremos as configurações a seguir. O que esperamos é que o resultado da união seja uma multiplicação dos dois valores que estão sendo inclusos, assim teremos certeza de que existe uma linha em categoria para cada linha em horário.
Se alguém está confuso e não está acompanhando, nosso fluxo por enquanto se encontra dessa maneira.
Nesse momento já temos nosso cartesiano. Mas perdemos todo o resto dos nossos dados lá na agregação, então qual a utilidade do nossos cartesiano?
Calma! Não terminaremos a dica por aqui, também ensinaremos a trazer o resto dos dados para se conectar ao cartesiano.
Passo 4: Trazendo os dados para o cartesiano
Agora que já temos nosso cartesiano, como trazemos essas novas linhas criadas e as juntamos com as linhas que já existem na nossa base?
Vamos trabalhar com a hipótese onde as novas linhas vão somente preencher as lacunas que existem, ou seja, as linhas onde existe um horário mas nem sempre uma categoria, assim priorizando as linhas já existentes na base.
Para isso faremos outro Join, nesse Join vamos unir as colunas baseado em categorias e datas, visto que existe uma linha para cada combinação de data e categoria, faz todo sentido, correto?!
Priorizaremos levar todas as linhas que já existiam na nossa base, então no nosso Join, marcaremos a bolinha inteira da nossa base raiz, e somente o que tem em comum do nosso Join cartesiano, como abaixo.
Para limpar os campos indesejados, removeremos os “campo 0” que não tem valores nulos, e também as datas e categorias que tem valores nulos.
Nossa base estará dessa maneira.
E nosso fluxo assim.
Agora terminaremos nossa limpeza definindo novos valores para os nulos nos campos “valor” e “quantidade” (Os nulos são as linhas que antes não existiam nesses campos, e agora existem pois criamos novas linhas em Categoria, e em Data e Hora) no nosso caso usaremos o valor 0 para não impactar negativamente alguma tratativa de cálculo, e excluiremos o campo 0 novamente.
Repare que organizando pela contagem de linhas da menor até a maior vemos que o menor número de linhas na nossa data e hora é 6, ou seja. Sempre teremos ao menos uma linha para cada uma das 6 categorias em cada linha que existe no nosso campo data e hora.