Skip to main content
Skip to main content

Array(T)

Массив из элементов типа T. T может любым, в том числе массивом. Таким образом поддерживаются многомерные массивы. Первый элемент массива имеет индекс 1.

Создание массива

Массив можно создать с помощью функции:

Также можно использовать квадратные скобки

Пример создания массива:

Особенности работы с типами данных

Максимальный размер массива ограничен одним миллионом элементов.

При создании массива «на лету» ClickHouse автоматически определяет тип аргументов как наиболее узкий тип данных, в котором можно хранить все перечисленные аргументы. Если среди аргументов есть NULL или аргумент типа Nullable, то тип элементов массива — Nullable.

Если ClickHouse не смог подобрать тип данных, то он сгенерирует исключение. Это произойдёт, например, при попытке создать массив одновременно со строками и числами SELECT array(1, 'a').

Примеры автоматического определения типа данных:

Если попытаться создать массив из несовместимых типов данных, то ClickHouse выбросит исключение:

Размер массива

Узнать размер массива можно с помощью подстолбца size0 без чтения всего столбца. Для многомерных массивов можно использовать подстолбец sizeN-1, где N — требуемое измерение.

Пример

Запрос:

Результат: