收集列表函数:collect_list

collect_list([distinct] expr)

功能描述

collect_list 函数用于从输入的一组数据中收集并返回一个数组。用户可以选择性地使用 distinct 关键字来返回一个不包含重复元素的集合。

参数说明

  • expr:任意类型的表达式,用于从输入数据中收集元素。

返回结果

  • 返回一个数组,数组中的元素类型与输入参数类型相同。
  • 如果设置了 distinct 关键字,则返回一个去重后的集合。
  • 函数不保证返回结果中的元素顺序。
  • 如果输入数据包含 null 值,则 null 不会被计算在内。

使用示例

  1. 返回包含非重复元素的数组:

    SELECT collect_list(DISTINCT col) FROM VALUES (1), (2), (1), (null) AS tab(col);
    +----------------------------+
    | collect_list(DISTINCT col) |
    +----------------------------+
    | [2,1]                      |
    +----------------------------+
  2. 返回包含重复元素的数组:

    SELECT collect_list(col) FROM VALUES (1), (2), (1), (null) AS tab(col);
    +-------------------+
    | collect_list(col) |
    +-------------------+
    | [1,2,1]           |
    +-------------------+
  3. 从字符串数据中收集字符:

    SELECT collect_list(col) FROM VALUES ("apple"), ("banana"), ("cherry"), (null) AS tab(col);
    +-----------------------------+
    |      collect_list(col)      |
    +-----------------------------+
    | ["apple","banana","cherry"] |
    +-----------------------------+
  4. 收集并返回包含 null 值的数组:

    SELECT collect_list(col) FROM VALUES (true), (false), (null) AS tab(col);
    +-------------------+
    | collect_list(col) |
    +-------------------+
    | [true,false]      |
    +-------------------+

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