ClickHouse/docs/ja/sql-reference/aggregate-functions/reference/grouparrayinsertat.md
2024-11-18 11:58:58 +09:00

3.6 KiB
Raw Blame History

slug sidebar_position
/ja/sql-reference/aggregate-functions/reference/grouparrayinsertat 140

groupArrayInsertAt

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

構文

groupArrayInsertAt(default_x, size)(x, pos)

1つのクエリで同じ位置に複数の値が挿入された場合、関数は次のように動作します

  • クエリが単一スレッドで実行される場合、挿入された値のうち最初のものが使用されます。
  • クエリが複数スレッドで実行される場合、結果として得られる値は挿入された値の中から不確定のものです。

引数

  • x — 挿入される値。サポートされているデータ型の1つの
  • pos — 指定された要素 x を挿入する位置。配列のインデックス番号はゼロから始まります。UInt32
  • default_x — 空の位置に代入するためのデフォルト値。オプションのパラメータ。x パラメータに設定されたデータ型を結果とします。default_x が定義されていない場合、デフォルト値が使用されます。
  • size — 結果となる配列の長さ。オプションのパラメータ。このパラメータを使用する場合、デフォルト値 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']                                             │
└───────────────────────────────────────────────────────────────────┘

1つの位置に対するマルチスレッド挿入。

クエリ:

SELECT groupArrayInsertAt(number, 0) FROM numbers_mt(10) SETTINGS max_block_size = 1;

このクエリの結果として [0,9] 範囲のランダムな整数が得られます。例:

┌─groupArrayInsertAt(number, 0)─┐
│ [7]                           │
└───────────────────────────────┘