groupArraySample

groupArraySample

표본(sample) 인자 값들의 배열을 만드는 집계 함수예요. 결과 배열의 크기는 max_size로 제한되며, 인자 값들은 무작위로 선택되어 배열에 추가됩니다.

출처: 문서

본문

도입 버전: v20.3.0

표본 인자 값들의 배열을 만듭니다. 결과 배열의 크기는 max_size 요소로 제한됩니다. 인자 값들은 무작위로 선택되어 배열에 추가됩니다.

구문 (Syntax)

groupArraySample(max_size[, seed])(x)

파라미터 (Parameters)

  • max_size — 결과 배열의 최대 크기. UInt64
  • seed — 선택 사항. 난수 생성기의 시드(seed). 생략하면 모든 집계 상태가 스레드-로컬 생성기로부터 스스로 시드를 정하므로, 평가할 때마다 표본이 달라져 이 함수는 비결정적이 됩니다. 재현 가능한 표본을 원하면 시드를 전달하세요. UInt64
  • x — 인자(컬럼 이름 또는 표현식). Any

인자 (Arguments)

  • array_column — 집계할 배열을 담은 컬럼. Array

반환 값

무작위로 선택된 x 인자들의 배열. Array(T)

예제

사용 예제

CREATE TABLE colors (
    id Int32,
    color String
) ENGINE = Memory;

INSERT INTO colors VALUES
(1, 'red'),
(2, 'blue'),
(3, 'green'),
(4, 'white'),
(5, 'orange');

SELECT groupArraySample(3)(color) as newcolors FROM colors;
┌─newcolors──────────────────┐
│ ['white','blue','green']   │
└────────────────────────────┘

시드를 사용한 예제

-- Query with column name and different seed
SELECT groupArraySample(3, 987654321)(color) as newcolors FROM colors;
┌─newcolors────────────────┐
│ ['red','orange','green'] │
└──────────────────────────┘

표현식을 인자로 사용

-- Query with expression as argument
SELECT groupArraySample(3)(concat('light-', color)) as newcolors FROM colors;
┌─newcolors───────────────────────────────────┐
│ ['light-blue','light-orange','light-green'] │
└─────────────────────────────────────────────┘

더 알아보기 (Learn more)