类别:

/sql-reference/functions-aggregation`(计算非重复值)、:doc:/sql-reference/functions-window`(半结构化数据聚合)

ARRAY_UNION_AGG

返回一个 ARRAY,其中包含列中的输入 ARRAYs 的非重复值并集。您可以使用它来汇总 ARRAY_UNIQUE_AGG 生成的 ARRAYs 中的不同值。

另请参阅:

ARRAY_UNIQUE_AGG使用数组计算分层聚合的非重复值

语法

ARRAY_UNION_AGG( <column> )
Copy

实参

column

包含具有不同值的 ARRAYs 的列(由 ARRAY_UNIQUE_AGG 生成的 ARRAYs)。

返回

该函数返回一个 ARRAY,该数组包含 column 中 ARRAYs 的不同值。ARRAY 中的值没有特定的顺序,并且顺序是不确定的。

请注意,该函数使用 多集语义 (link removed),这意味着单个值在单个输入 ARRAY 中的最大出现次数决定了该值在输出 ARRAY 中的出现次数。参阅 示例

该函数忽略 columncolumn 中 ARRAYs 中的 NULL 值。如果 column 只包含 NULL 值或包含 column 的表为空,则该函数返回一个空 ARRAY。

使用说明

  • 该函数可用作以下任一类型的函数:

  • 当此函数作为窗口函数调用时,它不支持显式窗口框架。

  • 当您将 结构化数组 传递给该函数时,该函数会返回相同类型的结构化数组。

示例

聚合:数组的并集

以下示例说明函数如何返回两个 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

该操作使用 多集 (link removed) 语义。值 1 在输出中出现了两次,因为它在其中一个输入数组中出现了两次。

请参阅 使用数组计算分层聚合的非重复值

语言: 中文