跳至主要内容

groupArray

语法: groupArray(x)groupArray(max_size)(x)

创建一个包含参数值数组。值可以以任何(不确定的)顺序添加到数组中。

第二个版本(带 max_size 参数)将结果数组的大小限制为 max_size 个元素。例如,groupArray(1)(x) 等效于 [any (x)]

在某些情况下,您仍然可以依赖执行顺序。这适用于 SELECT 来自使用 ORDER BY 的子查询的情况,如果子查询结果足够小。

示例

SELECT * FROM default.ck;

┌─id─┬─name─────┐
│ 1 │ zhangsan │
│ 1 │ ᴺᵁᴸᴸ │
│ 1 │ lisi │
│ 2 │ wangwu │
└────┴──────────┘

查询

select id, groupArray(10)(name) from default.ck group by id;

结果

┌─id─┬─groupArray(10)(name)─┐
│ 1 │ ['zhangsan','lisi'] │
│ 2 │ ['wangwu'] │
└────┴──────────────────────┘

根据以上结果,groupArray 函数将删除 ᴺᵁᴸᴸ 值。

  • 别名: array_agg