groupArrayInsertAt
도입 버전: v1.1.0
배열의 지정된 위치에 값을 삽입합니다.
하나의 쿼리에서 여러 값이 동일한 위치에 삽입되면, 함수는 다음과 같이 동작합니다.
- 쿼리가 단일 스레드에서 실행되면, 삽입된 값 중 첫 번째 값이 사용됩니다.
- 쿼리가 여러 스레드에서 실행되면, 결과 값은 삽입된 값 중 어느 값이 될지 결정되지 않습니다.
구문
groupArrayInsertAt(default_x, size)([x, pos])매개변수
default_x— 선택 사항입니다. 비어 있는 위치를 대체할 기본값입니다.Anysize— 선택 사항입니다. 결과 배열의 길이입니다. 이 매개변수를 사용하는 경우 기본값default_x를 지정해야 합니다.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)─┐
│ [0] │
└───────────────────────────────┘