Categorias:

Funções de agregação (Contagem de valores distintos), Funções de janela (Agregação de dados semiestruturados)

ARRAY_UNION_AGG

Retorna um ARRAY que contém a união dos valores distintos dos ARRAYs de entrada em uma coluna. Você pode usar isso para agregar valores distintos em ARRAYs produzidos por ARRAY_UNIQUE_AGG.

Consulte também:

ARRAY_UNIQUE_AGG , Uso de matrizes para computar valores distintos para agregações hierárquicas

Sintaxe

ARRAY_UNION_AGG( <column> )
Copy

Argumentos

column

A coluna contendo ARRAYs com os valores distintos (o ARRAYs produzido por ARRAY_UNIQUE_AGG).

Retornos

A função retorna um ARRAY contendo os valores distintos de ARRAYs em column. Os valores em ARRAY não estão em nenhuma ordem particular, e a ordem não é determinante.

Note que esta função usa semântica multiset, o que significa que o número máximo de ocorrências de um valor individual em uma única entrada ARRAY determina o número de ocorrências desse valor na saída ARRAY. Consulte Exemplos.

A função ignora os valores NULL em column e em ARRAYs em column. Se column tiver apenas valores NULL ou a tabela contendo column estiver vazia, a função retorna uma ARRAY vazia.

Notas de uso

  • Essa função pode ser usada como um dos seguintes tipos de funções:

  • Quando esta função é chamada como uma função de janela, ela não oferece suporte a quadros de janela explícitos.

  • Quando você passa uma matriz estruturada para a função, a função retorna uma matriz estruturada do mesmo tipo.

Exemplos

Agregação: união de matrizes

O exemplo a seguir ilustra como a função retorna a união de valores distintos de dois ARRAYs:

CREATE TABLE union_test(a array);

INSERT INTO union_test
    SELECT PARSE_JSON('[ 1, 1, 2]')
    UNION ALL
    SELECT PARSE_JSON('[ 1, 2, 3]');

SELECT ARRAY_UNION_AGG(a) FROM union_test;
+-------------------------+
| ARRAY_UNION_AGG(A)      |
+-------------------------+
| [ 1, 1, 2, 3]           |
+-------------------------+
Copy

A operação usa a semântica de multiset. O valor 1 aparece duas vezes na saída porque aparece duas vezes em uma das arrays de entrada.

Consulte Uso de matrizes para computar valores distintos para agregações hierárquicas.