Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

groupArray

groupArray

引入版本:v1.1.0

创建一个由参数值组成的数组。 这些值可以按任意 (不确定的) 顺序添加到数组中。

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

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

groupArray 函数会从结果中移除 NULL 值。

语法

groupArray(x)
groupArray(max_size)(x)

别名: array_agg

参数

  • max_size — 可选。将结果数组的大小限制为 max_size 个元素。UInt64

参数说明

  • x — 要收集到数组中的参数值。Any

返回值

返回由参数值组成的数组。Array

示例

基本用法

CREATE TABLE ck (id UInt8, name String) ENGINE = Memory;
INSERT INTO ck VALUES (1, 'zhangsan'), (1, 'lisi'), (2, 'wangwu');

SELECT id, groupArray(10)(name) FROM ck GROUP BY id ORDER BY id;
┌─id─┬─groupArray(10)(name)─┐
│  1 │ ['zhangsan','lisi']  │
│  2 │ ['wangwu']           │
└────┴──────────────────────┘
Navigation