Concatenação
A concatenação é uma operação que pega duas tabelas e combina-as em uma.
As duas tabelas são adicionadas uma a outra colocando uma em cima da outra, com uma coluna para cada nome de coluna diferente. Os dados não são alterados e a tabela resultante contém o mesmo número de registros que as duas tabelas originais juntas. Várias operações concatenadas podem ser executadas em sequência, de modo que a tabela resultante seja concatenada a partir de mais de duas tabelas.
Concatenação automática
Se os nomes de campo e o número de campos de duas ou mais tabelas carregadas forem exatamente os mesmos, o Qlik Sense concatenará automaticamente o conteúdo dos comandos diferentes em uma tabela.
A quantidade e os nomes dos campos devem ser exatamente os mesmos para a concatenação automática ser realizada. A ordem dos dois comandos LOAD é arbitrária, mas a tabela receberá o nome da tabela que for carregada primeiro.
Faça o seguinte:
- Abra o editor de carregamento de dados no aplicativo Scripting Tutorial.
- Clique na guia Dates.
- Clique em Carregar dados.
- Em uma nova linha do script na seção Dates, copie e cole o comando LOAD para Table2. Isso fará com que os dados sejam carregados duas vezes. Nomeie a segunda tabela como Table2a.
- Clique em Carregar dados.
- Abra o Visualizador do modelo de dados.
- Clique em Mostrar visualização.
Com base no script de carregamento que você escreveu até agora, o Qlik Sense carrega 628 linhas do arquivo de dados Dates.xlsx no Table2.
Você também pode excluir o script existente e copiar e colar o seguinte:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Seu script deve ter a seguinte aparência:
O Qlik Sense não carrega Table2 e depois Table2a. Em vez disso, ele reconhece que o Table2a tem os mesmos nomes de campos e o número de campos que Table2. Então, ele adiciona os dados de Table2a a Table2 a exclui a tabela Table2a. O resultado é que Table2 agora tem 1.256 linhas.
Apenas Table2 foi criado. Selecione Table2. A tabela tem 256 linhas.
Concatenação forçada
Mesmo se duas ou mais tabelas não tenham exatamente o mesmo conjunto de campos, ainda será possível forçar o Qlik Sense a concatenar as duas tabelas. O que é feito usando o prefixo Concatenate no script, que concatena uma tabela a outra tabela nomeada ou à tabela criada mais recentemente.
Faça o seguinte:
- Edite o comando LOAD para Table2a, adicionando Concatenate e comentando Week.
- Clique em Carregar dados.
- Abra o Visualizador do modelo de dados.
- Clique em Table2 no visualizador do modelo de dados e, em seguida, em Visualizar.
- Clique em Week em Table2. A visualização mostra que o número de valores não nulos para o campo é 628. No entanto, se você clicar em qualquer um dos outros campos, verá que o número de valores não nulos é 1256. Week foi carregado apenas uma vez, de Table2. O número de valores, ou registros, é a soma do número de registros em Table2 e Table2a.
Seu script agora deve ter a seguinte aparência:
Table2a:
Concatenate LOAD
"Date",
Month (Date) as "Month",
Quarter,
// "Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Ao comentar Week, nos certificamos de que as tabelas não sejam idênticas.
Agora, você pode ver que a Table2a não foi criada.
A tabela tem os campos Date, Month, Quarter, Week e Year. O campo Week ainda está sendo exibido, já que foi carregado a partir da Table2.
Evitando a concatenação
Se os nomes de campo e o número de campos de duas ou mais tabelas carregadas forem exatamente os mesmos, o Qlik Sense concatenará automaticamente o conteúdo dos comandos diferentes em uma tabela. O que pode ser evitado com um comando NoConcatenate. Assim, a tabela carregada com o comando LOAD ou SELECT associado não será concatenada com a tabela existente.
Faça o seguinte:
- Para poder separar completamente o conteúdo das duas tabelas, adicione NoConcatenate ao comando LOAD em Table2a e renomeie os campos para que o Qlik Sense não crie uma chave sintética com base nos campos correspondentes. Remova o comentário de Week em Table2 para que as duas tabelas tenham os mesmos campos.
- Clique em Carregar dados.
- Abra o Visualizador do modelo de dados.
- Agora que terminamos de demonstrar a concatenação, não precisamos mais de Table2a. Exclua todas as linhas no comando LOAD para Table2a e, em seguida, clique em Carregar dados.
Seu script agora deve ter a seguinte aparência:
Table2:
LOAD
"Date",
Month (Date) as "Month",
Quarter,
"Week",
"Year"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Table2a:
NoConcatenate LOAD
"Date" as "Date2",
Month (Date) as "Month2",
Quarter as "Quarter2",
"Week" as "Week2",
"Year" as "Year2"
FROM [lib://DataFiles/Dates.xlsx]
(ooxml, embedded labels, table is Dates);
Agora, você pode ver que as duas tabelas estão completamente separadas.