본문으로 바로가기
본문으로 바로가기

groupArrayInsertAt

groupArrayInsertAt

도입 버전: v1.1

배열의 지정된 위치에 값을 삽입합니다.

하나의 쿼리에서 여러 값이 동일한 위치에 삽입되는 경우, 함수는 다음과 같이 동작합니다:

  • 쿼리가 단일 스레드에서 실행되는 경우, 삽입된 값들 중 첫 번째 값이 사용됩니다.
  • 쿼리가 다중 스레드에서 실행되는 경우, 결과 값은 삽입된 값들 중 어떤 값이 될지 결정되지 않습니다.

구문

groupArrayInsertAt(default_x, size)([x, pos])

파라미터

  • default_x — 선택 사항입니다. 비어 있는 위치를 대체하는 기본값입니다. Any
  • size — 선택 사항입니다. 결과 배열의 길이입니다. 이 파라미터를 사용할 때는 기본값 default_x를 반드시 지정해야 합니다. UInt32

인자

  • x — 삽입할 값입니다. Any
  • pos — 요소 x를 삽입할 위치입니다. 배열의 인덱스 번호는 0부터 시작합니다. UInt32

반환 값

삽입된 값을 포함하는 배열을 반환합니다. Array

예시

파라미터 없이 사용하는 기본 예시

SELECT groupArrayInsertAt(toString(number), number * 2) FROM numbers(5);
┌─groupArrayInsertAt(toString(number), multiply(number, 2))─┐
│ ['0','','1','','2','','3','','4']                         │
└───────────────────────────────────────────────────────────┘

기본값 매개변수와 함께 사용하기

SELECT groupArrayInsertAt('-')(toString(number), number * 2) FROM numbers(5);
┌─groupArrayInsertAt('-')(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2','-','3','-','4']                          │
└────────────────────────────────────────────────────────────────┘

기본값 및 크기 매개변수 사용법

SELECT groupArrayInsertAt('-', 5)(toString(number), number * 2) FROM numbers(5);
┌─groupArrayInsertAt('-', 5)(toString(number), multiply(number, 2))─┐
│ ['0','-','1','-','2']                                             │
└───────────────────────────────────────────────────────────────────┘

동일 위치로의 멀티스레드 삽입

SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;
┌─groupArrayInsertAt(number, 0)─┐
│ [7]                           │
└───────────────────────────────┘