收集集合并转换为数组函数:COLLECT_SET_ON_ARRAY
collect_set_on_array([distinct] expr)
功能描述
collect_set_on_array 函数用于从输入的数组表达式中提取不重复的元素,并将这些元素组成一个新的数组。当指定 distinct 关键字时,函数会对结果进行去重处理,但请注意,即使不指定 distinct,该函数本身就具有去重的功能,因此 distinct 关键字在此场景下并不会产生额外的效果。
参数说明
返回结果
返回一个数组,数组中的元素类型与输入数组的元素类型相同。结果数组中的元素顺序不保证与输入数组相同,且数组中的 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 函数将返回一个空数组。