Ir para conteúdo principal

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:

  1. Abra o editor de carregamento de dados no aplicativo Scripting Tutorial.
  2. Clique na guia Dates.
  3. Clique em Carregar dados.
  4. Com base no script de carregamento que você escreveu até agora, Qlik Sense carrega 628 linhas do arquivo de dados Dates.xlsx em Table2.

    Janela do progresso do carregamento de dados
    Data load progress window

  5. 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.
  6. 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:

    Script de carregamento na guia Dates
    Load script in Dates tab.

  7. Clique em Carregar dados.
  8. 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.

    Concatenação na janela de andamento do carregamento de dados
     Concatenation in data load progress window.

  9. Abra o Visualizador do modelo de dados.
  10. Clique em Mostrar visualização.
  11. Apenas Table2 foi criado. Selecione Table2. A tabela tem 256 linhas.

    Visualizador do modelo de dados mostrando Table2
    Data model viewer showing Table2.

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:

  1. Edite o comando LOAD para Table2a, adicionando Concatenate e comentando Week.
  2. 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.

  3. Clique em Carregar dados.
  4. Abra o Visualizador do modelo de dados.
  5. Agora, você pode ver que a Table2a não foi criada.

  6. Clique em Table2 no visualizador do modelo de dados e, em seguida, em Visualizar.
  7. 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.

  8. 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.

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:

  1. 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.
  2. 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); 

  3. Clique em Carregar dados.
  4. Abra o Visualizador do modelo de dados.
  5. Agora, você pode ver que as duas tabelas estão completamente separadas.

    Visualizador do modelo de dados mostrando Table2 e Table 2a
    Data model viewer showing Table2 and Table 2a.

  6. 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.