メインコンテンツへスキップ
メインコンテンツへスキップ

groupArraySample

引数の値からサンプルを取り、配列を作成します。生成される配列の要素数は max_size を上限とします。引数の値はランダムに選択され、配列に追加されます。

構文

groupArraySample(max_size[, seed])(x)

引数

  • max_size — 生成される配列の最大サイズ。UInt64
  • seed — 疑似乱数生成器のシード。省略可。UInt64。デフォルト値: 123456
  • x — 引数(カラム名または式)。

戻り値

  • 引数 x の値をランダムに選択した配列。

型: Array

colors テーブルを考えます。

┌─id─┬─color──┐
│  1 │ red    │
│  2 │ blue   │
│  3 │ green  │
│  4 │ white  │
│  5 │ orange │
└────┴────────┘

カラム名を引数に取るクエリ:

SELECT groupArraySample(3)(color) as newcolors FROM colors;

結果:

┌─newcolors──────────────────┐
│ ['white','blue','green']   │
└────────────────────────────┘

カラム名と異なるシード値を使ったクエリ:

SELECT groupArraySample(3, 987654321)(color) as newcolors FROM colors;

結果:

┌─newcolors──────────────────┐
│ ['red','orange','green']   │
└────────────────────────────┘

引数に式を取るクエリ:

SELECT groupArraySample(3)(concat('light-', color)) as newcolors FROM colors;

結果:

┌─newcolors───────────────────────────────────┐
│ ['light-blue','light-orange','light-green'] │
└─────────────────────────────────────────────┘