COLLECT_LIST_ON_ARRAY

collect_list_on_array([DISTINCT] array [, limit])

功能描述

该函数用于将输入的数组(

ARRAY
ARRAY
)中的元素收集到一个新的数组中,并返回该新数组。如果指定了
DISTINCT
DISTINCT
参数,则对输入的数组行进行去重(即相同的数组只收集一次),而不是对数组内部元素去重。

参数说明

  • array
    array
    :输入的数组(
    ARRAY
    ARRAY
    )类型数据。
  • limit
    limit
    :可选参数,整数类型,表示最多收集的元素个数。如果不指定,则收集所有元素。

返回结果

  • 返回一个数组(
    ARRAY
    ARRAY
    )类型数据,其元素类型与输入数组的元素类型相同。
  • 如果指定了
    DISTINCT
    DISTINCT
    参数,则对输入的数组行去重后再收集,相同的数组只取一次。
  • 如果指定了
    limit
    limit
    参数,则返回的数组最多包含
    limit
    limit
    个元素。
  • 函数不保证返回结果数组的元素顺序。
  • 输入数组中的
    NULL
    NULL
    值不会影响结果数组的计算。

使用示例

以下示例展示了如何使用

collect_list_on_array
collect_list_on_array
函数来收集数组中的元素并返回一个新数组。

示例 1:基本使用

SELECT collect_list_on_array(a) FROM VALUES (ARRAY(3, 3, 4)), (NULL), (ARRAY(2, 2, 3)), (ARRAY(NULL)), (ARRAY(1, NULL, 2)), (ARRAY(1, 2, 2)) AS t(a); +--------------------------+ | collect_list_on_array(a) | +--------------------------+ | [3,3,4,2,2,3,1,2,1,2,2] | +--------------------------+

示例 2:使用 limit 参数限制返回的元素个数

SELECT collect_list_on_array(a, 5) FROM VALUES (ARRAY(3, 3, 4)), (NULL), (ARRAY(2, 2, 3)), (ARRAY(NULL)), (ARRAY(1, NULL, 2)), (ARRAY(1, 2, 2)) AS t(a); +-----------------------------+ | collect_list_on_array(a, 5) | +-----------------------------+ | [3,3,4,2,2] | +-----------------------------+

示例 3:使用 DISTINCT 对输入数组行去重

DISTINCT
DISTINCT
关键字对整行数组去重,即相同的数组只收集一次,不影响数组内部元素。

SELECT collect_list_on_array(DISTINCT a) FROM VALUES (ARRAY(1, 2)), (ARRAY(1, 2)), (ARRAY(3)) AS t(a); +-----------------------------------+ | collect_list_on_array(DISTINCT a) | +-----------------------------------+ | [1,2,3] | +-----------------------------------+

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