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

> Inserts a value into the array at the specified position.

# groupArrayInsertAt

<h2 id="groupArrayInsertAt">
  groupArrayInsertAt
</h2>

Introduced in: v1.1.0

Inserts a value into the array at the specified position.

If in one query several values are inserted into the same position, the function behaves in the following ways:

* If a query is executed in a single thread, the first one of the inserted values is used.
* If a query is executed in multiple threads, the resulting value is an undetermined one of the inserted values.

**Syntax**

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

**Parameters**

* `default_x` — Optional. Default value for substituting in empty positions. [`Any`](/reference/data-types)
* `size` — Optional. Length of the resulting array. When using this parameter, the default value `default_x` must be specified. [`UInt32`](/reference/data-types/int-uint)

**Arguments**

* `x` — Value to be inserted. [`Any`](/reference/data-types)
* `pos` — Position at which the specified element `x` is to be inserted. Index numbering in the array starts from zero. [`UInt32`](/reference/data-types/int-uint)

**Returned value**

Returns an array with inserted values. [`Array`](/reference/data-types/array)

**Examples**

**Basic usage without parameters**

```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']                         │
└───────────────────────────────────────────────────────────┘
```

**Usage with default value parameter**

```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']                          │
└────────────────────────────────────────────────────────────────┘
```

**Usage with default value and size parameters**

```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']                                             │
└───────────────────────────────────────────────────────────────────┘
```

**Multi-threaded insertion into same position**

```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]                           │
└───────────────────────────────┘
```
