Pular para o conteúdo principal

groupArrayInsertAt

Introduzido em: v1.1.0 Insere um valor no array na posição especificada. Se, em uma consulta, vários valores forem inseridos na mesma posição, a função se comporta da seguinte forma:
  • Se uma consulta for executada em uma única thread, será usado o primeiro dos valores inseridos.
  • Se uma consulta for executada em múltiplas threads, o valor resultante será um dos valores inseridos, de maneira indeterminada.
Sintaxe
groupArrayInsertAt(default_x, size)([x, pos])
Parâmetros
  • default_x — Opcional. Valor padrão para preencher posições vazias. Any
  • size — Opcional. Tamanho do array resultante. Ao usar este parâmetro, o valor padrão default_x deve ser especificado. UInt32
Argumentos
  • x — Valor a ser inserido. Any
  • pos — Posição em que o elemento especificado x deve ser inserido. A numeração dos índices no array começa em zero. UInt32
Valor retornado Retorna um array com os valores inseridos. Array Exemplos Uso básico sem 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 com o parâmetro de valor padrão
Query
SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);
Response
┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4']                          │
└────────────────────────────────────────────────────────────────┘
Uso com os parâmetros valor padrão e tamanho
Query
SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);
Response
┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2']                                             │
└───────────────────────────────────────────────────────────────────┘
Inserção multithread na mesma posição
Query
SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
Response
┌─groupArrayInsertAt(number, 0)─┐
│ [7]                           │
└───────────────────────────────┘
Última modificação em 10 de junho de 2026