> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8a08bda2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Вставляет значение в массив в указанную позицию.

# groupArrayInsertAt

<div id="groupArrayInsertAt">
  ## groupArrayInsertAt
</div>

Добавленный в: v1.1.0

Вставляет значение в массив в указанную позицию.

Если в одном запросе в одну и ту же позицию вставляется несколько значений, функция ведет себя следующим образом:

* Если запрос выполняется в одном потоке, используется первое из вставленных значений.
* Если запрос выполняется в нескольких потоках, результирующим значением будет одно из вставленных значений, выбранное неопределённым образом.

**Синтаксис**

```sql theme={null}
groupArrayInsertAt(default_x, size)([x, pos])
```

**Параметры**

* `default_x` — Необязательно. Значение по умолчанию для подстановки в пустых позициях. [`Any`](/ru/reference/data-types)
* `size` — Необязательно. Длина результирующего массива. При использовании этого параметра необходимо указать значение по умолчанию `default_x`. [`UInt32`](/ru/reference/data-types/int-uint)

**Аргументы**

* `x` — Значение для вставки. [`Any`](/ru/reference/data-types)
* `pos` — Позиция, в которую нужно вставить указанный элемент `x`. Нумерация индексов в массиве начинается с нуля. [`UInt32`](/ru/reference/data-types/int-uint)

**Возвращаемое значение**

Возвращает массив с вставленными значениями. [`Array`](/ru/reference/data-types/array)

**Примеры**

**Базовое использование без параметров**

```sql title=Query theme={null}
SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);
```

```response title=Response theme={null}
┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
│ ['0','','1','','2','','3','','4']                         │
└───────────────────────────────────────────────────────────┘
```

**Использование параметра значения по умолчанию**

```sql title=Query theme={null}
SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);
```

```response title=Response theme={null}
┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4']                          │
└────────────────────────────────────────────────────────────────┘
```

**Использование с параметрами значения по умолчанию и размера**

```sql title=Query theme={null}
SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);
```

```response title=Response theme={null}
┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2']                                             │
└───────────────────────────────────────────────────────────────────┘
```

**Многопоточная вставка в одну и ту же позицию**

```sql title=Query theme={null}
SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
```

```response title=Response theme={null}
┌─groupArrayInsertAt(number, 0)─┐
│ [7]                           │
└───────────────────────────────┘
```
