Массивы в ClickHouse: arrayJoin, arrayFilter, has

0 задач Лёгкие, средние, сложные С эталонными решениями Решение в браузере
ClickHouse-массивы — киллер-фича для аналитики событий. Хранить массив товаров в одной строке заказа, фильтровать через has(), джоинить через arrayJoin. На собесах Yandex/Avito/Wildberries это спрашивают на Middle-Senior. 8 задач на arrays.
Начать решать задачи →

Все задачи на «clickhouse-arrays» (0)

FAQ: частые вопросы про clickhouse-arrays

Зачем массивы в ClickHouse?

Денормализация для скорости: вместо JOIN orders + order_items хранить items как Array(String) в orders. arrayJoin разворачивает обратно для аналитики. Запросы в 10x быстрее JOIN.

Чем arrayJoin отличается от обычного JOIN?

arrayJoin — НЕ JOIN таблиц. Это unnest: один массив → много строк. Аналог UNNEST в PostgreSQL или LATERAL VIEW EXPLODE в Hive.

Как проверить наличие элемента в массиве?

has(arr, value) — true/false. indexOf(arr, value) — позиция (0 если нет). hasAll(arr, [a,b,c]) — все ли из b,c есть.

Связанные темы SQL

Агрегации · JOIN-запросы · Оконные функции · CTE (Common Table Expressions) · Подзапросы · Работа с датами · Строковые функции · Условная логика

Открыть весь SQL-тренажёр (521 задач) →