Saltar al contenido principal

groupArrayInsertAt

Introducido en: v1.1.0 Inserta un valor en el array en la posición especificada. Si en una consulta se insertan varios valores en la misma posición, la función se comporta del siguiente modo:
  • Si una consulta se ejecuta en un solo hilo, se usa el primero de los valores insertados.
  • Si una consulta se ejecuta en varios hilos, el valor resultante es uno indeterminado entre los valores insertados.
Sintaxis
groupArrayInsertAt(default_x, size)([x, pos])
Parámetros
  • default_x — Opcional. Valor predeterminado para sustituir las posiciones vacías. Any
  • size — Opcional. Longitud del array resultante. Al usar este parámetro, se debe especificar el valor predeterminado default_x. UInt32
Argumentos
  • x — Valor que se va a insertar. Any
  • pos — Posición en la que se insertará el elemento x especificado. La numeración de los índices del array comienza en cero. UInt32
Valor devuelto Devuelve un array con los valores insertados. Array Ejemplos Uso básico sin parámetros
Query
SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);
Response
┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
│ ['0','','1','','2','','3','','4']                         │
└───────────────────────────────────────────────────────────┘
Uso del parámetro de valor predeterminado
Query
SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);
Response
┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4']                          │
└────────────────────────────────────────────────────────────────┘
Uso con los parámetros de valor predeterminado y tamaño
Query
SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);
Response
┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2']                                             │
└───────────────────────────────────────────────────────────────────┘
Inserción desde varios hilos en la misma posición
Query
SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
Response
┌─groupArrayInsertAt(number, 0)─┐
│ [7]                           │
└───────────────────────────────┘
Última modificación el 10 de junio de 2026