Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

groupArrayInsertAt

groupArrayInsertAt

導入バージョン: v1.1.0

指定した位置に値を配列へ挿入します。

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)─┐
│ [0]                           │
└───────────────────────────────┘
Navigation