收集集合并转换为数组函数:COLLECT_SET_ON_ARRAY

collect_set_on_array([distinct] expr)

功能描述

collect_set_on_array 函数用于从输入的数组表达式中提取不重复的元素,并将这些元素组成一个新的数组。当指定 distinct 关键字时,函数会对结果进行去重处理,但请注意,即使不指定 distinct,该函数本身就具有去重的功能,因此 distinct 关键字在此场景下并不会产生额外的效果。

参数说明

  • expr:输入的数组类型表达式。

返回结果

返回一个数组,数组中的元素类型与输入数组的元素类型相同。结果数组中的元素顺序不保证与输入数组相同,且数组中的 null 值不会参与计算。

使用示例

以下示例展示了如何使用 collect_set_on_array 函数来处理不同的输入数组,并返回去重后的结果数组。

示例 1:

select
    array_sort(collect_set_on_array(a)) as result
from values
    (array(3, 3, 4)),
    (null),
    (array(2, 2, 3)),
    (array(null)),
    (array(1, null, 2)),
    (array(1, 2, 2))
as t(a);
+-----------+
|  result   |
+-----------+
| [1,2,3,4] |
+-----------+

示例 2:

select
    array_sort(collect_set_on_array(distinct a)) as result
from values
    (array(1, 1, 2)),
    (array(2, 3, 3)),
    (array(4, 5, 5))
as t(a);
+-------------+
|   result    |
+-------------+
| [1,2,3,4,5] |
+-------------+

注意事项

  • 当输入数组全为 null 时,collect_set_on_array 函数将返回一个空数组。

联系我们
预约咨询
微信咨询
电话咨询