Cruzar bases de dados é chamado de “join”, nas linguagens SQL.
É sempre algo confuso. Espero esclarecer um pouco como se faz isto no Spotfire.
Imagine que tenho duas tabelas.
A primeira com um cadastro de nomes:
E uma segunda com o valor pago por mês:
Há sempre dois problemas em banco de dados: dados inexistentes e dados duplicados.
Temos tantas formas de join por conta disso. Como tratar dados inexistentes? Como tratar dados duplicados? Como tratar ambos?
Nas tabelas acima, “Arnaldo” tem duas linhas na tabela 2.
“Júlia” não aparece no cadastro.
Como cruzar as bases?
Primeiro, importar as mesmas. Chamei a primeira de “Base1” e a segunda de “Base2”, mas talvez fosse melhor chamar de base esquerda e direita.
Depois, inserir -> coluna…
A Base1 aparece na primeira opção, “Adicionar colunas à tabela de dados”
A Base2 eu seleciono, e ela vai aparecer em “Adicionar colunas de:”.
Clicar em “Próximo”
A seguir, dizer qual será a chave para cruzar as colunas.
No caso, o Nome: basta selecionar Nome em ambas colunas e “Combinar Selecionado”.
A próxima tela é o problema.
São os diversos tipos de join.
Mas, antes, selecionar a coluna “Valor”, que é a que vou puxar para a Base1 (ou à esquerda).
Vou começar do mais fácil, independente da ordem que aparece na lista.
Caso 1: Correspondência única da esquerda. O caso mais fácil, por ser igual ao procv do Excel.
Resultado:
Note que puxa o primeiro valor de “Arnaldo” e despreza o segundo valor.
Note também que “Júlia” não aparece, por estar apenas na segunda tabela. É idêntico ao procv.
Case 2: Exterior esquerdo.
Note que a primeira linha, “Arnaldo”, duplica. Constam agora os dois valores.
E “Júlia” não aparece.
É por isso que a pessoa deve saber o que está fazendo, corre o risco de duplicar dados sem querer.
“Exterior esquerdo” é algo como “todos da tabela da esquerda (no caso, Tab1)”.
Caso 3: Exterior completo:
Neste caso, duplica a primeira linha, “Arnaldo”, como antes.
E agora, a “Júlia”, que nem aparece no cadastro, agora faz parte desta lista final.
Por isso o nome “completo”: completo na esquerda e na direita.
Caso 4: Interior
Se “Exterior” é algo como “todos”, “Interior” é algo como “intersecção”.
Agora, só a intersecção de quem está nas duas tabelas aparece. O “Carlos” sumiu, por não estar na base 2. E a “Júlia” sumiu, por não estar na base 1. E continua duplicando o “Arnaldo”.
Casos 5 e 6: tabela à direita.
A ideia é exatamente a mesma que antes, só que invertendo a posição das tabelas.
Como faço uma coluna com a soma acumulada das linhas anteriores?
Digamos que a minha coluna de dados seja chamada [Valor], com os seguintes números:
Quero criar uma coluna que vá dando o valor acumulado das linhas.
No spotfire, ir em Inserir -> coluna calculada
A fórmula é
Sum([Valor]) over (AllPrevious([Valor]))
A palavra chave “Over” indica a condição na qual a soma vai ocorrer, igual a um “somases” do excel.
A palavra chave “AllPrevious” indica que o critério são os registros anteriores de [Valor] (poderia ser outras colunas).
Resultado:
Ou seja,
1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
Arquivo para download aqui.
Bônus:
A sequência de números 1, 3, 6, 10, 15 acima é chamada de “números triangulares” e é estudada desde a escola de Pitágoras.
Porque cada um desses números forma um triângulo.
Boa diversão!
Você precisa fazer login para comentar.