Перейти к основному содержанию

Введение

Фильтрация таблицы ClickHouse по столбцу-массиву — распространённая задача, и ClickHouse предоставляет множество функций для работы со столбцами-массивами. В этой статье мы сосредоточимся на фильтрации таблицы по столбцу-массиву, а в видео ниже рассматривается множество других функций для работы с массивами:

Пример

Рассмотрим пример таблицы с двумя столбцами tags_string и tags_int, которые содержат массивы строк и целых чисел соответственно.
  • Создайте пример базы данных и таблицы.
  • Создайте таблицу-пример
  • Вставьте в таблицу несколько строк тестовых данных.
Отфильтруйте таблицу с помощью функции has(arr, elem), чтобы получить строки, в которых массив arr содержит элемент elem. Отфильтруйте таблицу так, чтобы получить строки, в которых массив tags_string содержит элемент tag1.
Используйте функцию hasAll(arr, elems), чтобы получить строки, в которых все элементы массива elems присутствуют в массиве arr. Отфильтруйте таблицу, чтобы получить строки, в которых все элементы массива tags_string присутствуют в массиве ['tag1', 'tag2'].
Используйте функцию hasAny(arr, elems), чтобы вернуть строки, в которых хотя бы один элемент массива elems присутствует в массиве arr. Отфильтруйте table, чтобы вернуть строки, в которых хотя бы один элемент массива tags_string присутствует в массиве ['tag1', 'tag2'].
Мы можем использовать лямбда-функцию для фильтрации таблицы с помощью функции arrayExists(lambda, arr). Отфильтруйте таблицу так, чтобы вернуть строки, где хотя бы один элемент массива tags_int больше 3.
Последнее изменение 10 июня 2026 г.