Array(T)
Массив из элементов типа T
. T
может любым, в том числе массивом. Таким образом поддерживаются многомерные массивы. Первый элемент массива имеет индекс 1.
Создание массива
Массив можно создать с помощью функции:
Также можно использовать квадратные скобки
Пример создания массива:
Особенности работы с типами данных
Максимальный размер массива ограничен одним миллионом элементов.
При создании массива «на лету» ClickHouse автоматически определяет тип аргументов как наиболее узкий тип данных, в котором можно хранить все перечисленные аргументы. Если среди аргументов есть NULL или аргумент типа Nullable, то тип элементов массива — Nullable.
Если ClickHouse не смог подобрать тип данных, то он сгенерирует исключение. Это произойдёт, например, при попытке создать массив одновременно со строками и числами SELECT array(1, 'a')
.
Примеры автоматического определения типа данных:
Если попытаться создать массив из несовместимых типов данных, то ClickHouse выбросит исключение:
Размер массива
Узнать размер массива можно с помощью подстолбца size0
без чтения всего столбца. Для многомерных массивов можно использовать подстолбец sizeN-1
, где N
— требуемое измерение.
Пример
Запрос:
Результат: