array
emptyArray* 関数を使用してください。
同じ機能を使うには、[ ] 演算子を使用します。
構文
x1— 任意の型 T の定数値。この引数のみを指定した場合、配列の型は T になります。 -[, x2, ..., xN]—x1と共通の上位型を持つ、追加の N 個の定数値
Array(T)
例
有効な使用例
Query
Response
Query
Response
arrayAUCPR
arrayPRAUC
引数
cores— 予測モデルが出力するスコア。Array((U)Int*)またはArray(Float*)labels— サンプルのラベル。通常、正例は 1、負例は 0 です。Array((U)Int*)またはArray(Enum)partial_offsets—- 任意。AUC 全体ではなく PR 曲線下面積の一部 (PR 空間における垂直帯に相当) を計算するための、3 つの非負整数からなる
Array(T)です。このオプションは、PR AUC を分散計算する場合に便利です。配列には次の要素 [higher_partitions_tp,higher_partitions_fp,total_positives] を含める必要があります。higher_partitions_tp: より高いスコアのパーティションに含まれる正例ラベルの数。higher_partitions_fp: より高いスコアのパーティションに含まれる負例ラベルの数。total_positives: データセット全体の正例サンプル数。
arr_partial_offsets を使用する場合、arr_scores と arr_labels は、スコアのある区間に対応する、データセット全体の一部のパーティションのみを含む必要があります。
データセットは連続するパーティションに分割する必要があり、各パーティションには、スコアが特定の範囲に入るデータの部分集合が含まれている必要があります。
例えば:- あるパーティションには、範囲 [0, 0.5) のすべてのスコアを含めることができます。
- 別のパーティションには、範囲 [0.5, 1.0] のスコアを含めることができます。
Float64
例
使用例
Query
Response
arrayAll
func(x [, y1, y2, ... yN]) がすべての要素に対して true を返す場合は 1 を返し、それ以外の場合は 0 を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して動作するラムダ関数です。Lambda functionsource_arr— 処理するソース配列です。Array(T)cond1_arr, ...— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
1、それ以外の場合は 0 を返します。UInt8
例
すべての要素が一致する場合
Query
Response
Query
Response
arrayAutocorrelation
max_lag が指定されている場合は、[0, max_lag) の範囲内のラグについてのみ相関を計算します。
max_lag が指定されていない場合は、取り得るすべてのラグについて計算します。
構文
Array(Float64)
例
線形
Query
Response
Query
Response
Query
Response
Query
Response
arrayAvg
func が指定されている場合は、ラムダ関数の結果の要素の平均値を返します。
構文
func(x[, y1, ..., yN])— 任意。ソース配列 (x) と条件配列 (y) の要素に対して適用されるラムダ関数。Lambda functionsource_arr— 処理対象のソース配列。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Float64
例
基本的な例
Query
Response
Query
Response
arrayCompact
null 値を含む連続した重複要素を削除します。結果の配列における値の順序は、ソース配列での順序によって決まります。
構文
arr— 重複を削除する対象の配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayConcat
arr1 [, arr2, ... , arrN]— 連結するN個の配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayCount
func(arr1[i], ..., arrN[i]) が true を返す要素の個数を返します。
func が指定されていない場合は、配列内の 0 以外の要素の個数を返します。
arrayCount は高階関数です。
構文
func が true を返す要素の数を返します。func を指定しない場合は、配列内の 0 以外の要素数を返します。UInt32
例
使用例
Query
Response
arrayCumSum
func— 任意。各位置の配列要素に適用するラムダ関数。ラムダ関数arr1— 数値のソース配列。Array(T)[arr2, ..., arrN]— 任意。同じサイズの追加の配列です。指定した場合は、ラムダ関数の引数として渡されます。Array(T)
Array(T)
例
基本的な使い方
Query
Response
Query
Response
arrayCumSumNonNegative
func— 任意。各位置の配列要素に適用するラムダ関数。ラムダ関数arr1— 数値からなるソース配列。Array(T)[arr2, ..., arrN]— 任意。同じサイズの追加配列です。指定した場合は、ラムダ関数に引数として渡されます。Array(T)
Array(T)
例
基本的な使い方
Query
Response
Query
Response
arrayDifference
arr[1] - arr[0]、3 番目は arr[2] - arr[1]、以降も同様です。
結果の配列の要素の型は、減算における型推論の規則によって決まります (例: UInt8 - UInt8 = Int16) 。
構文
arr— 隣接する要素同士の差分を計算する対象の Array。Array(T)
UInt*
例
使用例
Query
Response
Query
Response
arrayDistinct
arr— 重複のない要素を抽出する対象の Array。Array(T)
Array(T)
例
使用例
Query
Response
arrayDotProduct
2 つのベクトルのサイズは同じである必要があります。Array と Tuple には、異なる要素型を混在させることもできます。
v1— 第1ベクトル。Array((U)Int* | Float* | Decimal)またはTuple((U)Int* | Float* | Decimal)v2— 第2ベクトル。Array((U)Int* | Float* | Decimal)またはTuple((U)Int* | Float* | Decimal)
戻り値の型は引数の型によって決まります。Array または Tuple に異なる要素型が混在している場合、結果の型は共通の上位型になります。
(U)Int* または Float* または Decimal
例
Array の例
Query
Response
Query
Response
arrayElement
n にある要素を返します。n には任意の整数型を指定できます。
インデックスが配列の範囲外の場合は、デフォルト値 (数値であれば 0、文字列であれば空文字列など) を返します。
ただし、非定数の配列引数に対して定数インデックス 0 を指定した場合は例外で、この場合は Array indices are 1-based というエラーになります。
ClickHouse の配列は 1 始まりです。
arr[-1] は配列の最後の要素です。
演算子 [n] でも同じ機能を使用できます。
構文
Array(T)
例
使用例
Query
Response
Query
Response
Query
Response
Query
Response
arrayElementOrNull
n にある要素を取得します。n には任意の整数型を指定できます。
インデックスが配列の範囲外の場合は、デフォルト値ではなく NULL が返されます。
ClickHouse の Array は 1 始まりの配列です。
arr[-1] は配列の最後の要素です。
構文
arrays— 任意の数の配列引数。Array
Array(T)
例
使用例
Query
Response
Query
Response
Query
Response
arrayEnumerate
[1, 2, 3, ..., length (arr)] を返します
この関数は通常、ARRAY JOIN 句とともに使用されます。これにより、ARRAY JOIN の適用後に、各配列につき
1 回だけカウントできるようになります。
この関数は高階関数でも使用できます。たとえば、条件に一致する要素の配列内インデックスを取得するために使用できます。
構文
arr— 列挙対象の配列。Array
[1, 2, 3, ..., length (arr)] を返します。Array(UInt32)
例
ARRAY JOIN を使った基本例
Query
Response
arrayEnumerateDense
arr— 番号付けする対象の配列です。Array(T)
arr と同じサイズの配列を返します。各要素がソース配列内で最初に現れる位置を示します。Array(T)
例
使用例
Query
Response
arrayEnumerateDenseRanked
clear_depth— 指定したレベルで要素を別々に列挙します。max_arr_depth以下でなければなりません。UInt*arr— 列挙対象の N 次元配列。Array(T)max_array_depth— 有効な最大深さです。arrの深さ以下でなければなりません。UInt*
Array
例
基本的な使い方
Query
Response
Query
Response
Query
Response
arrayEnumerateUniq
ARRAY JOIN と配列要素の集約を使用する場合に便利です。
この関数は、同じサイズの複数の配列を引数として受け取ることもできます。この場合、一意性は、すべての配列の同じ位置にある要素のタプルに対して判定されます。
構文
arr1— 処理する最初の配列。Array(T)arr2, ...— 任意。同じサイズの追加の配列で、タプルの一意性を判定するために使用します。Array(UInt32)
Array(T)
例
基本的な使い方
Query
Response
Query
Response
Query
Response
arrayEnumerateUniqRanked
clear_depth— 指定したレベルで要素を個別に列挙します。max_arr_depth以下の正の整数。UInt*arr— 列挙対象の N 次元配列。Array(T)max_array_depth— 有効な最大深度。arrの深度以下の正の整数。UInt*
arr と同じサイズの N 次元配列を返します。各要素には、同じ値を持つ他の要素に対するその要素の位置が示されます。Array(T)
例
例 1
Query
Response
Query
Response
Query
Response
Query
Response
arrayExcept
except に含まれない source の要素からなる配列を返します。
この関数は、2 つの配列に対して差集合演算を行います。source の各要素について、その要素が except に存在するかどうかを確認し (厳密比較を使用) 、存在しない場合は結果に含めます。
この演算では、次の性質が維持されます。
sourceの要素の順序は保持されますsource内の重複要素は、exceptに存在しない場合は保持されます- NULL は個別の値として扱われます
except に含まれない source の要素を含む、入力配列と同じ型の配列を返します。 Array(T)
例
基本
Query
Response
Query
Response
Query
Response
Query
Response
arrayExists
func(x[, y1, y2, ... yN]) が true を返す要素が少なくとも 1 つある場合は 1 を返し、それ以外の場合は 0 を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して動作するラムダ関数です。ラムダ関数source_arr— 処理するソース配列です。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
1、それ以外の場合は 0 を返します。UInt8
例
使用例
Query
Response
arrayFill
arrayFill 関数は、ソース配列を先頭の要素から末尾の要素まで順番に処理し、
各位置でソース配列および条件配列の要素を使ってラムダ関数の条件を評価します。位置 i でラムダ関数の評価結果が
false の場合、
この関数はその要素を、配列の現在の状態における位置 i-1 の要素に置き換えます。
先頭の要素は、条件にかかわらず常に保持されます。
構文
func(x [, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して適用されるラムダ関数func(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])。ラムダ関数source_arr— 処理対象のソース配列。ラムダ関数[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Array(T) を返します
例
単一配列の例
Query
Response
Query
Response
arrayFilter
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の各要素に対して処理を行うラムダ関数。ラムダ関数source_arr— 処理対象のソース配列。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Array(T) を返します
例
例 1
Query
Response
Query
Response
arrayFirst
func(x[, y1, y2, ... yN]) が true を返すソース配列内の最初の要素を返します。該当する要素がない場合は、デフォルト値を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して動作するラムダ関数。ラムダ関数。 -source_arr— 処理するソース配列。Array(T)。 -[, cond1_arr, ... , condN_arr]— 省略可能。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)。
λ が true になるソース配列の最初の要素を返します。該当する要素がない場合は、T のデフォルト値を返します。
例
使用例
Query
Response
Query
Response
arrayFirstIndex
func(x[, y1, y2, ... yN]) が true を返すソース配列内の最初の要素の索引を返します。該当する要素がない場合は ‘0’ を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して評価を行うラムダ関数です。Lambda function。 -source_arr— 処理対象のソース配列です。Array(T)。 -[, cond1_arr, ... , condN_arr]— 省略可能。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)。
func が true となるソース配列の最初の要素の索引を返します。該当する要素がない場合は 0 を返します UInt32
例
使用例
Query
Response
Query
Response
arrayFirstOrNull
func(x[, y1, y2, ... yN]) が true を返すソース配列内の最初の要素を返します。該当する要素がない場合は NULL を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) および条件配列 (y) の要素に対して適用されるラムダ関数。Lambda functionsource_arr— 処理するソース配列。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
func が true となるソース配列の最初の要素を返します。該当する要素がない場合は NULL を返します。
例
使用例
Query
Response
Query
Response
arrayFlatten
- ネストされた配列の深さにかかわらず適用できます。
- すでにフラットな配列は変更しません。
flatten
引数
arr— 多次元配列。Array(Array(T))
Array(T) を返します
例
使用例
Query
Response
arrayFold
λ(x, x1 [, x2, x3, ... xN])— ラムダ関数λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN])。ここでFはaccとxの配列要素に適用される演算で、その結果のaccが繰り返し再利用されます。ラムダ関数arr1 [, arr2, arr3, ... arrN]— 演算の対象となる N 個の配列。Array(T)acc— ラムダ関数の戻り値と同じ型のアキュムレータ値。
acc の値を返します。
例
使用例
Query
Response
Query
Response
Query
Response
arrayIntersect
arrN— 新しい配列の作成元となる N 個の配列。Array(T).
Array(T)
例
使用例
Query
Response
arrayJaccardIndex
arr_x と arr_y のジャカード係数を返します。Float64
例
使用例
Query
Response
arrayJoin
arrayJoin 関数は、配列を含む1つの行を受け取り、それを展開して、配列の各要素ごとに1行ずつ、複数の行を生成します。
これは、同じ行の中で入力値を出力値に対応付ける ClickHouse の通常の関数や、
複数の行のグループを1つの要約行に「圧縮」または「集約」する集約関数
(GROUP BY とともに使用した場合は、要約行内の単一の値) とは対照的です。
この関数が適用されたカラムを除き、他のカラムの値はそのままコピーされます。
適用されたカラムの値は、対応する配列の要素の値に置き換えられます。
構文
unnest
引数
arr— 展開する配列。Array(T)
arr を展開して得られる行の集合を返します。
例
基本的な使い方
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayLast
func(x [, y1, y2, ... yN]) が true を返すソース配列内の最後の要素を返します。該当する要素がない場合は、デフォルト値を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) および条件配列 (y) の要素に対して適用されるラムダ関数です。Lambda function。 -source— 処理対象のソース配列。Array(T)。 -[, cond1, ... , condN]— 省略可。ラムダ関数に追加の引数を渡すための N 個の条件配列です。Array(T)。
func が true となるソース配列内の最後の要素を返します。該当する要素がない場合は、T のデフォルト値を返します。
例
使用例
Query
Response
Query
Response
arrayLastIndex
func(x[, y1, y2, ... yN]) が true を返すソース配列内の最後の要素の索引を返します。該当する要素がない場合は ‘0’ を返します。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して評価を行うラムダ関数。Lambda functionsource_arr— 処理対象のソース配列。Array(T)[, cond1_arr, ... , condN_arr]— 省略可能。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
func が true となるソース配列の最後の要素の索引を返します。該当する要素がない場合は 0 を返します。 UInt32
例
使用例
Query
Response
Query
Response
arrayLastOrNull
func(x [, y1, y2, ... yN]) が true を返すソース配列内の最後の要素を返します。該当する要素がない場合は、NULL を返します。
構文
func(x [, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して適用されるラムダ関数です。ラムダ関数。 -source_arr— 処理対象のソース配列。Array(T)。 -[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)。
λ が真ではないソース配列内の最後の要素を返します。該当する要素がない場合は NULL を返します。
例
使用例
Query
Response
Query
Response
arrayLevenshteinDistance
Float64
例
使用例
Query
Response
arrayLevenshteinDistanceWeighted
from— 第1の配列。Array(T)。 -to— 第2の配列。Array(T)。 -from_weights— 第1の配列の重み。Array((U)Int*|Float*)to_weights— 第2の配列の重み。Array((U)Int*|Float*)
Float64
例
使用例
Query
Response
arrayMap
func— ソース配列 (x) と条件配列 (y) の要素に適用されるラムダ関数です。Lambda functionarr— 処理対象の配列を N 個指定します。Array(T)
Array(T)
例
使用例
Query
Response
Query
Response
arrayMax
func が指定されている場合は、その評価結果の最大値を返します。
構文
func(x[, y1, ..., yN])— 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数です。ラムダ関数source_arr— 処理対象のソース配列です。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
Query
Response
Query
Response
arrayMin
func が指定されている場合は、ラムダ関数の結果のうち最小の要素を返します。
構文
func(x[, y1, ..., yN])— オプション。ソース配列 (x) および条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数source_arr— 処理対象のソース配列。Array(T)cond1_arr, ...— オプション。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Query
Response
Query
Response
arrayNormalizedGini
Tuple(Float64, Float64, Float64)
例
使用例
Query
Response
arrayPartialReverseSort
arrayReverseSort と同じですが、limit 引数を追加することで部分ソートを行えます。
構文
f(arr[, arr1, ... ,arrN])— 配列xの要素に適用するラムダ関数。ラムダ関数arr— ソート対象の配列。Array(T)arr1, ... ,arrN—fが複数の引数を受け取る場合に指定する、追加の N 個の配列。Array(T)limit— どこまでソートするかを示す索引値。(U)Int*
[1..limit] の要素が
降順にソートされます。残りの要素 (limit..N] の順序は未規定です。
例
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialShuffle
[1..limit] の範囲の要素が元の配列からランダムに選ばれた
部分集合となります。残りの (limit..n] には、[1..limit] に含まれない要素が未定義の順序で格納されます。
limit の値は [1..n] の範囲内である必要があります。この範囲外の値を指定した場合は、完全な arrayShuffle を実行するのと同等です。
この関数は定数をマテリアライズしません。
limit の値は [1..N] の範囲内である必要があります。この範囲外の値を指定した場合は、完全な arrayShuffle を実行するのと同等です。arr— シャッフルする配列。Array(T)seed— 任意。乱数生成に使用するシード値です。指定しない場合はランダムな値が使用されます。(U)Int*limit— 任意。要素の入れ替え回数を[1..N]の範囲に制限するための数値です。(U)Int*
Array(T)
例
no_limit1
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialSort
arraySort と同じですが、部分ソートを行うための limit 引数が追加されています。
構文
f(arr[, arr1, ... ,arrN])— 配列xの要素に適用するラムダ関数です。ラムダ関数arr— ソートする Array です。Array(T)arr1, ... ,arrN—fが複数の引数を受け取る場合に使用する、追加の N 個の配列です。Array(T)limit— ソートを行う範囲の終端を表すインデックス値です。(U)Int*
[1..limit] の要素が
昇順にソートされます。残りの要素 (limit..N] の順序は未定です。
例
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPopBack
arr— 末尾の要素を削除する配列です。Array(T)
arr と同じ配列から末尾の要素を取り除いた配列を返します。Array(T)
例
使用例
Query
Response
arrayPopFront
arr— 先頭の要素を削除する配列です。Array(T)
arr と同じですが、arr の先頭要素を除いた配列を返します Array(T)
例
使用例
Query
Response
arrayProduct
func が指定されている場合は、そのラムダ関数の結果の各要素の積を返します。
構文
func(x[, y1, ..., yN])— 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数source_arr— 処理対象のソース配列。Array(T)[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Float64
例
基本例
Query
Response
Query
Response
arrayPushBack
- 数値の配列に追加できるのは数値のみで、文字列の配列に追加できるのは文字列のみです。
- 数値を追加する場合、ClickHouse は配列のデータ型に合わせて
xの型を自動的に設定します。 NULLを指定できます。この関数は配列にNULL要素を追加し、配列要素の型はNullableに変換されます。
arr と同じ内容で、配列の末尾に追加の値 x が加わった配列を返します。Array(T)
例
使用例
Query
Response
arrayPushFront
- 数値の配列には数値のみ、文字列の配列には文字列のみを追加できます。
- 数値を追加する場合、ClickHouse は配列のデータ型に合わせて
xの型を自動的に設定します。 NULLも指定できます。この関数は配列にNULL要素を追加し、配列要素の型はNullableに変換されます。
arr と同一ですが、配列の先頭に追加の値 x が含まれる配列を返します Array(T)
Examples
Usage example
Query
Response
arrayROCAUC
arrayAUC
引数
scores— 予測モデルが出力するスコア。Array((U)Int*)またはArray(Float*)labels— サンプルのラベル。通常、正例には 1、負例には 0 を使用します。Array((U)Int*)またはEnumscale— 任意。正規化された面積を返すかどうかを指定します。false の場合は、代わりに TP (真陽性) x FP (偽陽性) 曲線の下の面積を返します。デフォルト値: true。Boolpartial_offsets—- AUC 全体ではなく ROC 曲線の部分面積 (ROC 空間の縦方向の帯に相当) を計算するための、4 つの非負整数からなる配列です。このオプションは、ROC AUC の分散計算に役立ちます。配列には次の要素を含める必要があります: [
higher_partitions_tp,higher_partitions_fp,total_positives,total_negatives]。Array の非負の Integers。任意です。higher_partitions_tp: より高いスコアのパーティションに含まれる正例ラベルの数。higher_partitions_fp: より高いスコアのパーティションに含まれる負例ラベルの数。total_positives: データセット全体に含まれる正例サンプルの総数。total_negatives: データセット全体に含まれる負例サンプルの総数。
arr_partial_offsets を使用する場合、arr_scores と arr_labels は、スコアのある区間に対応するデータセット全体の 1 つのパーティションのみを含む必要があります。
データセットは連続したパーティションに分割する必要があり、各パーティションには、スコアが特定の範囲に収まるデータの部分集合が含まれている必要があります。
例:- あるパーティションには、範囲 [0, 0.5) のすべてのスコアを含めることができます。
- 別のパーティションには、範囲 [0.5, 1.0] のスコアを含めることができます。
Float64
例
使用例
Query
Response
arrayRandomSample
samples 個の要素からなる部分集合を返します。samples が入力配列のサイズを超える場合、サンプル数は配列のサイズに制限されます。つまり、配列のすべての要素が返されますが、その順序は保証されません。この関数は、フラットな配列とネストされた配列の両方を扱えます。
構文
Array(T)
例
使用例
Query
Response
Query
Response
arrayReduce
'max'、'sum' のようにシングルクォートで囲んだ文字列として渡します。
パラメトリック集約関数を使用する場合、パラメータは 'uniqUpTo(6)' のように関数名の後のかっこ内で指定します。
構文
Query
Response
Query
Response
Query
Response
arrayReduceInRanges
arrayReduce(agg_func, arraySlice(arr1, index, length), ...) を複数回実行した場合と同じ結果を返します。
構文
agg_f— 使用する aggregate function の名前。Stringranges— 集約する範囲。集約を開始する索引iと、集約対象の範囲rを含む(i, r)形式の Tuple の配列。Array(T)またはTuple(T)arr1[, arr2, ... ,arrN]— aggregate function に渡す N 個の配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayRemove
array_remove
引数
arr— Array(T) -elem— T
Array(T) を返します
例
例 1
Query
Response
Query
Response
arrayResize
arr— リサイズ対象の Array。Array(T)size— -Array の新しい長さ。sizeが Array の元のサイズより小さい場合、Array は右側から切り詰められます。sizeが Array の初期サイズより大きい場合、Array は右側にextenderの値、または Array 要素のデータ型のデフォルト値で拡張されます。extender— Array の拡張に使用する値。NULLを指定できます。
size の Array。Array(T)
例
例 1
Query
Response
Query
Response
arrayReverse
関数
reverse(arr) も同じ機能を持ち、Array に加えて他のデータ型にも対応しています。arr— 反転する配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayReverseFill
arrayReverseFill 関数は、ソース配列を末尾の
要素から先頭の要素へ順に処理し、各位置でソース配列および条件配列の要素を使って
ラムダ条件を評価します。位置 i で条件の評価結果が false の場合、
この関数はその要素を、配列の現在の状態における位置 i+1 の要素で
置き換えます。最後の要素は、条件にかかわらず
常に保持されます。
構文
func(x[, y1, ..., yN])— ソース配列 (x) と条件配列 (y) の要素に対して動作するラムダ関数です。ラムダ関数source_arr— 処理対象のソース配列です。Array(T)[, cond1_arr, ... , condN_arr]— 任意です。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
Array(T)
例
単一の配列を使った例
Query
Response
Query
Response
arrayReverseSort
f が指定されている場合、指定した配列は、その配列要素に関数を適用した結果に基づいてソートされた後、反転されます。
f が複数の引数を受け取る場合、arrayReverseSort 関数には複数の配列が渡され、これらは func の各引数に対応します。
ソート対象の配列に -Inf、NULL、NaN、または Inf が含まれている場合、これらは次の順序でソートされます。
-InfInfNaNNULL
arrayReverseSort は高階関数です。
構文
f(y1[, y2 ... yN])— 配列xの要素に適用するラムダ関数。 -arr— ソートする配列。Array(T)-arr1, ..., yN— 任意。fが複数の引数を受け取る場合に指定する、追加の N 個の配列。
x を降順にソートして返します。指定されている場合は、
指定されたラムダ関数のロジックに従って配列をソートし、その後で反転した配列を返します。 Array(T)。
例
例 1
Query
Response
Query
Response
arrayReverseSplit
func(x[, y1, ..., yN]) が 0 以外の値を返した場合、その要素の右側で配列が分割されます。最後の要素の後では分割されません。
構文
func(x[, y1, ..., yN])— ソース配列 (x) および条件配列 (y) の要素に対して処理を行うラムダ関数です。Lambda functionsource_arr— 処理対象のソース配列です。Lambda function[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
Array(Array(T))
例
使用例
Query
Response
arrayRotateLeft
n の値が負の場合は、回転量の絶対値だけ右に回転するものとして扱われます。
構文
arr— 要素を回転させる対象の配列。Array(T)。 -n— 回転させる要素数。(U)Int8/16/32/64。
Array(T)
例
使用例
Query
Response
Query
Response
arrayRotateRight
n が負の値の場合は、その絶対値の分だけ左に回転するものとして扱われます。
構文
arr— 要素をローテーションする配列。Array(T)。 -n— ローテーションする要素の数。(U)Int8/16/32/64。
Array(T)
例
使用例
Query
Response
Query
Response
arrayShiftLeft
arr— 要素をシフトする配列。Array(T)。 -n— シフトする要素数。(U)Int8/16/32/64。 -default— 任意。新たに追加される要素のデフォルト値。
Array(T)
例
使用例
Query
Response
Query
Response
Query
Response
arrayShiftRight
arr— 要素をシフトする対象の配列です。Array(T)n— シフトする要素の数です。(U)Int8/16/32/64default— 省略可。新しく作成される要素のデフォルト値です。
Array(T)
例
使用例
Query
Response
Query
Response
Query
Response
arrayShingles
Array(T)
例
使用例
Query
Response
arrayShuffle
この関数では定数はマテリアライズされません。
Array(T)
例
seed を指定しない例 (結果は不安定)
Query
Response
Query
Response
arraySimilarity
0 から 1 の範囲で計算します。
構文
from— 1つ目の配列Array(T)to— 2つ目の配列Array(T)from_weights— 1つ目の配列の重み。Array((U)Int*|Float*)to_weights— 2つ目の配列の重み。Array((U)Int*|Float*)
0 から 1 の類似度を返します Float64
例
使用例
Query
Response
arraySlice
NULL 要素も含まれます。
構文
arr— スライス対象の Array。Array(T)offset— 配列の端からの位置。正の値は左側からのオフセット、負の値は右側からのインデントを示します。配列要素の番号は1から始まります。(U)Int*length— 必要なスライスの長さ。負の値を指定すると、関数は開区間のスライス[offset, array_length - length]を返します。値を省略すると、関数はスライス[offset, the_end_of_array]を返します。(U)Int*
offset から length 個の要素を含む配列のスライスを返します。Array(T)
例
使用例
Query
Response
arraySort
f が指定されている場合、ソート順は
配列の各要素にラムダを適用した結果によって決まります。
ラムダが複数の引数を受け取る場合、arraySort 関数には複数の
配列が渡され、それぞれが f の引数に対応します。
ソート対象の配列に -Inf、NULL、NaN、または Inf が含まれている場合、これらは次の順序でソートされます。
-InfInfNaNNULL
arraySort は高階関数です。
構文
f(y1[, y2 ... yN])— 配列xの要素に適用するラムダ関数。 -arr— ソートする配列。Array(T)-arr1, ..., yN— 任意。fが複数の引数を受け取る場合に指定する、追加の N 個の配列。
arr を昇順にソートして返します。
指定されている場合は、指定されたラムダ関数のロジックに従ってソートされた配列を返します。 Array(T).
例
例 1
Query
Response
Query
Response
Query
Response
arraySplit
func(x [, y1, ..., yN]) が 0 以外の値を返した場合、その要素の左側で配列が分割されます。最初の要素の前では配列は分割されません。
構文
func(x[, y1, ..., yN])— ソース配列 (x) および条件配列 (y) の要素に対して適用されるラムダ関数です。ラムダ関数。 -source_arr— 分割対象のソース配列Array(T)。 -[, cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)。
Array(Array(T))
例
使用例
Query
Response
arraySum
func が指定されている場合は、ラムダ関数の結果の合計を返します。
構文
func(x[, y1, ..., yN])— 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数source_arr— 処理対象のソース配列。Array(T), cond1_arr, ... , condN_arr]— 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
Query
Response
Query
Response
arraySymmetricDifference
2 つを超える集合の対称差は、数学的には
奇数個の入力集合に現れるすべての入力要素からなる集合として定義されます。
一方、関数
arraySymmetricDifference は、すべての入力集合に共通して存在するわけではない入力要素の集合を単純に返します。arrN— 新しい配列の作成元となる N 個の配列。Array(T)。
Array(T)
例
使用例
Query
Response
arrayTranspose
arr— 転置する二次元配列。すべての内部配列は同じ長さである必要があります。Array(Array(T))
[i][j] が入力の要素 [j][i] に等しくなる、転置後の二次元配列。Array(Array(T))
例
正方行列
Query
Response
Query
Response
Query
Response
arrayUnion
arrN— 新しい配列の作成元となる N 個の配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayUniq
SELECT arrayUniq([1,2], [3,4], [5,6]) は次のタプルを形成します。
- 位置 1: (1,3,5)
- 位置 2: (2,4,6)
2 です。
渡すすべての配列は同じ長さである必要があります。
構文
arr1— 一意な要素数を数える対象の Array。Array(T)[, arr2, ..., arrN]— 任意。複数の Array の対応する位置にある要素から構成される、一意な Tuple の数を数えるための追加の Array。Array(T)
UInt32
例
単一引数
Query
Response
Query
Response
arrayWithConstant
x で埋めた長さ length の配列を作成します。
構文
length— 配列の要素数。(U)Int*x— 配列のN個の要素の値。型は任意です。
x の N 個の要素で構成される Array を返します。Array(T)
例
使用例
Query
Response
arrayZip
arr1, arr2, ... , arrN— 1 つの配列に結合するための N 個の配列。Array(T)
Array(T)
例
使用例
Query
Response
arrayZipUnaligned
arr1, arr2, ..., arrN— 1つの配列に結合する N 個の配列。Array(T)
Array(T) または Tuple(T1, T2, ...)
例
使用例
Query
Response
countEqual
x に等しい要素の数を返します。arrayCount(elem -> elem = x, arr) と同等です。
NULL 要素は独立した値として扱われます。
構文
arr— 検索対象の Array。Array(T)x— 配列内で個数を数える値。任意の型。
x に等しい要素の数を返します。UInt64
例
使用例
Query
Response
empty
optimize_functions_to_subcolumns 設定を有効にすることで最適化できます。optimize_functions_to_subcolumns = 1 の場合、この関数は配列カラム全体を読み取って処理する代わりに、size0 サブカラムのみを読み取ります。クエリ SELECT empty(arr) FROM TABLE; は SELECT arr.size0 = 0 FROM TABLE; に変換されます。arr— 入力Array。Array(T)
1、空でないArrayの場合は 0 を返します。UInt8
例
使用例
Query
Response
emptyArrayDate
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayDateTime
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayFloat32
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayFloat64
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayInt16
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayInt32
- なし
Array(T)
例
使用例
Query
Response
emptyArrayInt64
- なし
Array(T)
例
使用例
Query
Response
emptyArrayInt8
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayString
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayToSingle
arr— 空の配列。Array(T)
Array(T)
例
基本例
Query
Response
emptyArrayUInt16
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayUInt32
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayUInt64
- なし。
Array(T)
例
使用例
Query
Response
emptyArrayUInt8
- なし。
Array(T)
例
使用例
Query
Response
has
has(constant_array, column) は column IN (constant_array) と同様に動作し、最適化のために主キーやデータスキッピング索引を利用できます。たとえば、id が PRIMARY KEY の一部であれば、has([1, 10, 100], id) は主キー索引を活用できます。
この最適化は、カラムが単調関数でラップされている場合にも適用されます (例: has([...], toDate(ts))) 。
構文
haystack— ソース配列、Map、または JSON。ArrayまたはMapまたはJSONneedle— 検索する値 (配列内の要素、Map のキー、または JSON のパス文字列) 。
haystack に指定した needle が含まれている場合は 1、含まれていない場合は 0 を返します。UInt8
例
Array の基本的な使い方
Query
Response
Query
Response
Query
Response
Query
Response
hasAll
- 空の配列は、任意の配列の部分集合です。
Nullは値として処理されます。- どちらの配列でも、値の順序は関係ありません。
set— 要素の集合を持つ、任意の型の Array。Array(T)subset—setと共通のスーパータイプを持ち、setの部分集合かどうかを判定する対象の要素を含む、任意の型の Array。Array(T)
1—setにsubsetのすべての要素が含まれる場合。0— それ以外の場合。
set と subset の要素が共通のスーパータイプを持たない場合は、NO_COMMON_TYPE 例外が発生します。
例
空の配列
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAny
Nullは値として処理されます。- どちらの配列でも、値の順序は問いません。
1—arr_xとarr_yに共通する要素が少なくとも 1 つある場合。0— それ以外の場合。
NO_COMMON_TYPE 例外が発生します。
例
一方の Array が空の場合
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasSubstr
1 を返します。
つまり、この関数は hasAll 関数と同様に、array2 のすべての要素が array1 に含まれているかどうかを確認します。
さらに、array1 と array2 の両方で、それらの要素が同じ順序で現れることも確認します。
- array2 が空の場合、この関数は
1を返します。 NULLは値として処理されます。言い換えると、hasSubstr([1, 2, NULL, 3, 4], [2,3])は0を返します。ただし、hasSubstr([1, 2, NULL, 3, 4], [2,NULL,3])は1を返します。- 両方の配列における値の順序は重要です。
NO_COMMON_TYPE 例外を発生させます。
構文
arr1 が配列 arr2 を含む場合は 1、それ以外の場合は 0 を返します。UInt8
例
両方の配列が空の場合
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
indexOf
0 を返します。
NULL に設定された要素も通常の値として扱われます。
構文
arr に x が存在する場合は、最初の x の索引 (1 から始まる番号) を返します。存在しない場合は 0 を返します。UInt64
例
基本的な例
Query
Response
Query
Response
indexOfAssumeSorted
1 から始まる) を返します。
配列に検索対象の値が含まれていない場合、この関数は 0 を返します。
indexOf 関数とは異なり、この関数は配列が昇順に
ソートされていることを前提としています。配列がソートされていない場合、結果は未定義です。arr 内に x が存在する場合は、最初の x の索引 (1 から始まる) を返します。存在しない場合は、0 を返します。UInt64
例
基本例
Query
Response
kql_array_sort_asc
array1— ソート対象の配列です。Array(T)array2— 任意。array1のソート順に合わせて並べ替える追加の配列です。Array(T)nulls_last— 任意。NULL を最後に配置するかどうかを示すブール値です。デフォルトは true です。UInt8
Tuple(Array, ...)
例
基本的な使い方
Query
Response
kql_array_sort_desc
array1— ソート対象の配列です。Array(T)array2—array1のソート順に合わせて並べ替える、任意の追加配列です。Array(T)nulls_last— null を末尾に配置するかどうかを示す任意のブール値です。デフォルトは true です。UInt8
Tuple(Array, ...)
例
基本的な使い方
Query
Response
length
- String または FixedString 引数の場合: 文字列のバイト数を計算します。
- Array 引数の場合: 配列の要素数を計算します。
- FixedString 引数に適用した場合、この関数は定数式になります。
OCTET_LENGTH
引数
x— バイト数 (String/FixedString の場合) または要素数 (Array の場合) を計算する値。StringまたはFixedStringまたはArray(T)
x のバイト数、または配列 x の要素数を返します。UInt64
例
Stringの例
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
notEmpty
optimize_functions_to_subcolumns 設定を有効にすると、この関数を最適化できます。optimize_functions_to_subcolumns = 1 の場合、この関数は Array 全体のカラムを読み取って処理する代わりに、size0 サブカラムだけを読み取ります。クエリ SELECT notEmpty(arr) FROM table は SELECT arr.size0 != 0 FROM TABLE に変換されます。arr— 入力配列。Array(T)
1、空の配列の場合は 0 を返します。UInt8
例
使用例
Query
Response
range
start から end - 1 までの数値を、step 刻みで配列として返します。
サポートされている型は次のとおりです。
-
UInt8/16/32/64 -
Int8/16/32/64] -
すべての引数
start、end、stepは、上記のサポート対象の型のいずれかである必要があります。返される配列の要素型は、引数の共通の上位型になります。 -
関数が、設定
function_range_max_elements_in_blockで指定された要素数を超える合計長の配列を返す場合、例外が発生します。 -
いずれかの引数の型が Nullable(nothing) の場合は
NULLを返します。いずれかの引数の値がNULL(Nullable(T) 型) の場合は、例外が発生します。
start— 任意。配列の先頭要素です。stepを使用する場合は必須です。デフォルト値:0。 -end— 必須。配列がこの値の直前まで生成される数値です。 -step— 任意。配列の各要素間の増分を指定します。デフォルト値:1。
start から end - 1 までを step 刻みで並べた数値の Array。Array(T)
例
使用例
Query
Response
replicate
arr と同じ長さで、各要素が値 x の配列を返します。Array(T)
例
使用例
Query
Response
reverse
Array の要素の並び、または入力文字列内の文字の並びを逆順にします。
構文
Query
Response
Query
Response