CONCATENATEX вычисляет выражение для каждой строки таблицы, после чего объединяет все полученные значения через указанный разделитель и возвращает в виде одной строки. Функция возвращает строку, объединенную через разделитель (если был указан) и отсортированную по выражению (если было указано).
Для работы функции CONCATENATEX требуется версия ClickHouse не ниже 24.8.6.70.
Table – (обязательный) таблица, содержащая строки, для которых будет вычисляться выражение.
Expression – (обязательный) выражение, которое должно быть вычислено для каждой строки таблицы. Может быть поле или столярные выражения любого типа.
Delimiter – (обязательный) разделитель, между объединяемыми строками. Может быть только строкой.
OrderBy_Expression – (опциональный) выражение, которое будет использоваться для сортировки таблицы. Может быть поле или столярные выражения любого типа.
Order – (опциональный) применяемый порядок ( ASC/DESC ). По умолчанию ASC.
Пример
Представим, что у вас есть интернет-магазин, который продает различные товары, и вы хотите создать отчет, где пользователи смогут видеть список категорий товаров, которые были куплены клиентами. При этом вы хотите вывести этот список в виде одной строки, чтобы легко было просматривать результаты. Для этой цели можно воспользоваться следующей мерой:
Категории товаров = CONCATENATEX (
SUMMARIZE (
'Товары',
'Товары'[classname]
),
'Товары'[classname],
", "
)
где
SUMMARIZE группирует данные по столбу 'Товары' [classname], создавая таблицу с уникальными значениями категорий.
CONCATENATEX проходит по каждому уникальному значению категории и объединяет их в одну строку, добавляя между ними запятую и пробел.
Таким образом, мера создает список категорий товаров, которые были приобретены клиентами, и объединяет их в одну строку, разделяя запятыми и пробелами. В нашем примере мы дополнительно добавили в таблицу столбцы bandname и colorname и получили следующий результат: