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

Nested

Nested(name1 Type1, Name2 Type2, ...)

Вложенная структура данных похожа на таблицу внутри ячейки. Параметры вложенной структуры данных – имена и типы столбцов – указываются так же, как и в запросе CREATE TABLE. Каждая строка таблицы может соответствовать любому количеству строк во вложенной структуре данных.

Пример:

В этом примере объявляется вложенная структура данных Goals, которая содержит данные о конверсиях (достигнутых целях). Каждая строка в таблице 'visits' может соответствовать нулю или любому количеству конверсий.

Когда flatten_nested установлен в 0 (что не является значением по умолчанию), поддерживаются произвольные уровни вложенности.

В большинстве случаев, при работе с вложенной структурой данных, столбцы указываются с именами столбцов, разделенными точкой. Эти столбцы составляют массив соответствующих типов. Все массивы столбцов одной вложенной структуры данных имеют одинаковую длину.

Пример:

Легче всего представлять вложенную структуру данных как набор нескольких массивов столбцов одинаковой длины.

Единственное место, где запрос SELECT может указать имя всей вложенной структуры данных вместо отдельных столбцов, это предложение ARRAY JOIN. Для получения дополнительной информации смотрите "ARRAY JOIN clause". Пример:

Вы не можете выполнить запрос SELECT для всей вложенной структуры данных. Вы можете только явно перечислить отдельные столбцы, которые являются ее частью.

Для запроса INSERT вам необходимо передать все компонентные массивы столбцов вложенной структуры данных отдельно (как если бы это были отдельные массивы столбцов). Во время вставки система проверяет, чтобы они имели одинаковую длину.

Для запроса DESCRIBE столбцы во вложенной структуре данных перечисляются отдельно тем же способом.

Запрос ALTER для элементов во вложенной структуре данных имеет ограничения.