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'] │
└────┴──────────────────────┘