Как разложить массив на несколько строк в ClickHouse
Иногда возникает ситуация, когда нужно разложить поле, содержащее столбец-массив на несколько строк, то есть вынести в столбец каждый отдельный элемент массива. Другими словами: как разгруппировать колонку в несколько строк.
Перед прочтением рекомендую подписаться на мой телеграмм канал, где вы сможете найти актуальные новости, примеры и хаки в мире разработки: @asanov_tech
Например, разложить колонку room_number на несколько строк.
Как видим из примера выше, каждый элемент массива room_numbers теперь на отдельной строке.
Делается это при помощи конструкции ARRAY JOIN. Синтаксис следующий:
[LEFT] ARRAY JOIN <array>
Вместо <array> вы должны указать колонку или выражение, которое возвращает массив.
Для нашего примера запрос будет таким:
SELECT
consumer_id,
room_number,
order_date
FROM orders
ARRAY JOIN room_numbers as room_number
WHERE consumer_id = 1694953573;
Profit! Приветствуются конструктивные комментарии. Спасибо.
P.S. А если поле у вас не массив, а строка, то об этом можно прочесть в нашем блоке по ссылке Как преобразовать строку в массив в ClickHouse
Если было полезным, большая просьба подписаться на мой телеграмм канал и рассказать друзьям: @asanov_tech
Ссылки: Документация ClickHouse по array join – https://clickhouse.tech/docs/ru/sql-reference/statements/select/array-join/ККак преобразовать строку в массив в ClickHouse – https://greenwebstudio.blogspot.com/2021/06/clickhouse-how-to-transform-string-to.html?utm_source=greenwebstudio&utm_content=array_join
Комментарии
Отправить комментарий