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.Anysize— Opcional. Longitud del array resultante. Al usar este parámetro, se debe especificar el valor predeterminadodefault_x.UInt32
Argumentos
x— Valor que se va a insertar.Anypos— Posición en la que se insertará el elementoxespecificado. 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
SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
│ ['0','','1','','2','','3','','4'] │
└───────────────────────────────────────────────────────────┘Uso del parámetro de valor predeterminado
SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4'] │
└────────────────────────────────────────────────────────────────┘Uso con los parámetros de valor predeterminado y tamaño
SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2'] │
└───────────────────────────────────────────────────────────────────┘Inserción desde varios hilos en la misma posición
SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;┌─groupArrayInsertAt(number, 0)─┐
│ [0] │
└───────────────────────────────┘