Array functions
array
Introduced in: v1.1
関数の引数から配列を作成します。
引数は定数である必要があり、共通のスーパークラスを持つ型でなければなりません。
少なくとも1つの引数を渡す必要があります。そうしないと、どのタイプの配列を作成するのかが不明だからです。
これは、この関数を使用して空の配列を作成することができないことを意味します。空の配列を作成するには、emptyArray*
関数を使用してください。
同じ機能を持つ[ ]
演算子を使用できます。
構文
引数
x1
— 任意の型Tの定数値。 この引数のみが提供される場合、配列は型Tになります。 -[, x2, ..., xN]
—x1
と共通のスーパークラスを共有するN個の追加定数値
返される値
渡された引数の中で 'T' が最小の共通型の配列を返します。 Array(T)
例
有効な使用法
無効な使用法
arrayAUCPR
Introduced in: v20.4
精度-再現率(PR)曲線の下の面積を計算します。 精度-再現率曲線は、すべての閾値にわたってy軸に精度、x軸に再現率をプロットすることによって作成されます。 結果の値は0から1の範囲になり、高い値はモデルのパフォーマンスが良好であることを示します。 PR AUCは特に不均衡なデータセットに役立ち、そのケースにおけるROC AUCと比較してパフォーマンスを明確に比較します。 詳細については、こちら、こちらおよびこちらを参照してください。
構文
引数
cores
— 予測モデルが提供するスコア。Array((U)Int*)
またはArray(Float*)
labels
— サンプルのラベル。通常、正のサンプルは1、負のサンプルは0です。Array((U)Int*)
またはArray(Enum)
partial_offsets
—- オプション。 PR曲線の部分的な領域を計算するための3つの非負整数の
Array(T)
で、全体のAUCの代わりに(PRスペースの垂直バンドに相当)を計算します。このオプションは、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]内のスコアが含まれます。
返される値
精度-再現率(PR)曲線の下の面積を返します。 Float64
例
使用例
arrayAll
Introduced in: v1.1
func(x [, y1, y2, ... yN])
がすべての要素に対して真を返す場合、1
を返します。それ以外の場合は0
を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
cond1_arr, ...
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
ラムダ関数がすべての要素に対して真を返す場合は1
、そうでない場合は0
を返します。 UInt8
例
すべての要素が一致
すべての要素が一致しない
arrayAvg
Introduced in: v21.1
ソース配列の要素の平均を返します。
ラムダ関数func
が指定されている場合、ラムダの結果の要素の平均を返します。
構文
引数
func(x[, y1, ..., yN])
— オプション。ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
ソース配列の要素の平均、または提供された場合はラムダの結果の要素の平均を返します。 Float64
例
基本例
ラムダ関数を用いた使用例
arrayCompact
Introduced in: v20.1
配列から連続する重複要素を削除します。null
値も含まれます。結果の配列内の値の順序は、ソース配列の順序によって決まります。
構文
引数
arr
— 重複を削除するための配列。Array(T)
返される値
重複のない配列を返します。 Array(T)
例
使用例
arrayConcat
Introduced in: v1.1
引数として渡された配列を結合します。
構文
引数
arr1 [, arr2, ... , arrN]
— 結合するN個の配列。Array(T)
返される値
提供された配列引数からの単一の結合された配列を返します。 Array(T)
例
使用例
arrayCount
Introduced in: v1.1
func(arr1[i], ..., arrN[i])
が真を返す要素の数を返します。
func
が指定されていない場合、配列内のゼロでない要素の数を返します。
arrayCount
は高階関数です。
構文
引数
func
— オプション。配列の各要素に適用される関数。Lambda function
arr1, ..., arrN
— N個の配列。Array(T)
返される値
func
が真を返す要素の数を返します。そうでなければ、配列内のゼロでない要素の数を返します。 UInt32
例
使用例
arrayCumSum
Introduced in: v1.1
ソース配列の要素の部分的(累積)合計の配列を返します。ラムダ関数が指定されている場合は、各位置の配列要素にラムダを適用して合計が計算されます。
構文
引数
func
— オプション。各位置の配列要素に適用されるラムダ関数。Lambda function
arr1
— 数値型のソース配列。Array(T)
[arr2, ..., arrN]
— オプション。同じサイズの追加の配列で、指定した場合はラムダ関数に引数として渡されます。Array(T)
返される値
ソース配列の要素の部分的合計の配列を返します。結果の型は、入力配列の数値型に一致します。 Array(T)
例
基本的な使用法
ラムダを使用した場合
arrayCumSumNonNegative
Introduced in: v18.12
負の累積和をゼロに置き換えたソース配列の要素の部分的(累積)合計の配列を返します。ラムダ関数が指定されている場合は、各位置の配列要素にラムダを適用して合計が計算されます。
構文
引数
func
— オプション。各位置の配列要素に適用されるラムダ関数。Lambda function
arr1
— 数値型のソース配列。Array(T)
[arr2, ..., arrN]
— オプション。同じサイズの追加の配列で、指定した場合はラムダ関数に引数として渡されます。Array(T)
返される値
負の累積和をゼロに置き換えたソース配列の要素の部分的合計の配列を返します。結果の型は、入力配列の数値型に一致します。 Array(T)
例
基本的な使用法
ラムダを使用した場合
arrayDifference
Introduced in: v1.1
隣接配列要素間の差の配列を計算します。
結果配列の最初の要素は0、2番目はarr[1] - arr[0]
、3番目はarr[2] - arr[1]
、などとなります。
結果配列内の要素の型は、減算の型推論ルールによって決まります(例: UInt8
- UInt8
= Int16
)。
構文
引数
arr
— 隣接要素の間の差を計算するための配列。Array(T)
返される値
隣接配列要素間の差の配列を返します。 UInt*
例
使用例
結果型Int64によるオーバーフローの例
arrayDistinct
Introduced in: v1.1
配列内の重複しない要素のみを含む配列を返します。
構文
引数
arr
— 重複要素を抽出する配列。Array(T)
返される値
重複しない要素を含む配列を返します。 Array(T)
例
使用例
arrayDotProduct
Introduced in: v23.5
2つの配列のドット積を返します。
2つのベクトルのサイズは等しくなければなりません。配列とタプルには異種の要素型を含むこともできます。
構文
引数
v1
— 第1ベクトル。Array((U)Int* | Float* | Decimal)
またはTuple((U)Int* | Float* | Decimal)
v2
— 第2ベクトル。Array((U)Int* | Float* | Decimal)
またはTuple((U)Int* | Float* | Decimal)
返される値
2つのベクトルのドット積を返します。
戻り値の型は引数の型によって決まります。配列またはタプルに異種の要素型が含まれている場合、結果の型はスーパークラスとなります。
(U)Int*
または Float*
または Decimal
例
配列の例
タプルの例
arrayElement
Introduced in: v1.1
提供された配列のインデックスn
にある要素を取得します。ここで、n
は任意の整数型です。
インデックスが配列の範囲外の場合は、デフォルト値(数字の場合は0、文字列の場合は空文字列など)を返しますが、
非定数配列の引数と定数インデックス0の場合は例外があり、この場合はArray indices are 1-based
というエラーが発生します。
ClickHouseの配列は1から始まります。
負のインデックスもサポートされています。この場合、末尾から数えて対応する要素が選択されます。例えば、arr[-1]
は配列の最後のアイテムです。
演算子[n]
は同じ機能を提供します。
構文
引数
返される値
提供された配列引数からの単一の結合された配列を返します。 Array(T)
例
使用例
負のインデックス
[n]表記による使用
インデックスが配列の範囲外
arrayElementOrNull
Introduced in: v1.1
提供された配列のインデックスn
にある要素を取得します。ここで、n
は任意の整数型です。
インデックスが配列の範囲外の場合、デフォルト値の代わりにNULL
が返されます。
ClickHouseの配列は1から始まります。
負のインデックスもサポートされています。この場合、末尾から数えて対応する要素が選択されます。例えば、arr[-1]
は配列の最後のアイテムです。
構文
引数
arrays
— 任意の数の配列引数。Array
返される値
提供された配列引数からの単一の結合された配列を返します。 Array(T)
例
使用例
負のインデックス
インデックスが配列の範囲外
arrayEnumerate
Introduced in: v1.1
配列 [1, 2, 3, ..., length (arr)]
を返します。
この関数は通常、ARRAY JOIN
句で使用されます。ARRAY JOIN
を適用した各配列に対して何かを1回だけカウントすることを可能にします。
この関数は高階関数でも使用できます。たとえば、条件に一致する要素の配列インデックスを取得するために使用できます。
構文
引数
arr
— 列挙する配列。Array
返される値
配列 [1, 2, 3, ..., length (arr)]
を返します。 Array(UInt32)
例
ARRAY JOINを用いた基本的な例
arrayEnumerateDense
Introduced in: v18.12
ソース配列の各要素が最初に出現する位置を示す、ソース配列と同じサイズの配列を返します。
構文
引数
arr
— 列挙する配列。Array(T)
返される値
arr
と同じサイズの配列を返し、ソース配列の各要素が最初に出現する位置を示します。 Array(T)
例
使用例
arrayEnumerateDenseRanked
Introduced in: v20.1
ソース配列と同じサイズの配列を返し、ソース配列の各要素が最初に出現する位置を示します。これは、多次元配列を列挙するためのもので、配列の内部をどれだけ深く探すかを指定することができます。
構文
引数
clear_depth
— 指定されたレベルの要素を個別に列挙します。max_arr_depth
以下の正の整数である必要があります。UInt*
arr
— 列挙するN次元配列。Array(T)
max_array_depth
— 有効な最大深度。arr
の深度以下の正の整数である必要があります。UInt*
返される値
ソース配列の各要素が最初に出現する位置を示す配列を返します。 Array
例
基本的な使用法
多次元配列を用いた使用法
clear_depthを増加させた例
arrayEnumerateUniq
Introduced in: v1.1
ソース配列と同じサイズの配列を返し、各要素が同じ値を持つ要素の中でどの位置にあるかを示します。
この関数は、ARRAY JOIN
と配列要素の集約を使用する場合に便利です。
関数は、同じサイズの複数の配列を引数として取ることができます。この場合、すべての配列内での同じ位置にある要素のタプルに対して一意性が考慮されます。
構文
引数
arr1
— 処理する最初の配列。Array(T)
arr2, ...
— オプション。タプルの一意性のための同じサイズの追加配列。Array(UInt32)
返される値
同じ値またはタプルを持つ要素の中での位置を示す配列を返します。 Array(T)
例
基本的な使用法
複数の配列
ARRAY JOIN集約
arrayEnumerateUniqRanked
Introduced in: v20.1
ソース配列と同じ次元を持つ配列(または多次元配列)を返し、各要素が同じ値を持つ要素の中での位置を示します。 これは、多次元配列を列挙するためのもので、配列の内部をどれだけ深く探すかを指定することができます。
構文
引数
clear_depth
— 指定されたレベルの要素を個別に列挙します。正の整数で、max_arr_depth
以下である必要があります。UInt*
arr
— 列挙するN次元配列。Array(T)
max_array_depth
— 有効な最大深度。正の整数で、arr
の深度以下である必要があります。UInt*
返される値
各要素が同じ値を持つ要素に対するその要素の位置を示す、arr
と同じサイズのN次元配列を返します。 Array(T)
例
例1
例2
例3
例4
arrayExcept
Introduced in: v25.9
source
からexcept
に含まれない要素を含む配列を返し、元の順序を保持します。
この関数は、2つの配列間の集合差演算を実行します。source
の各要素について、except
にその要素が存在するかを確認(厳密な比較を使用)します。存在しない場合、結果にその要素が含まれます。
この操作は以下の特性を維持します:
source
の要素の順序が保持されますexcept
に存在しない場合、source
の重複が保持されます- NULLは別の値として処理されます
構文
引数
返される値
except
に見つからなかったsource
の要素を含む、入力配列と同じ型の配列を返します。 Array(T)
例
基本的な例
with_nulls1
with_nulls2
strings
arrayExists
Introduced in: v1.1
ソース配列の中にfunc(x[, y1, y2, ... yN])
が真を返す要素が少なくとも1つ存在する場合、1
を返します。そうでない場合は0
を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
ラムダ関数が少なくとも1つの要素に対して真を返す場合は1
、そうでない場合は0
を返します。 UInt8
例
使用例
arrayFill
Introduced in: v20.1
arrayFill
関数は、最初の要素から最後の要素までソース配列を順に処理し、ソースと条件の配列からの要素を用いて各位置でのラムダ条件を評価します。 ラムダ関数が位置iでfalseを評価すると、その要素は配列の現在の状態から位置i-1の要素で置き換えられます。最初の要素は条件に関係なく常に保持されます。
構文
引数
func(x [, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数func(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN])
。Lambda function
source_arr
— 処理するソース配列。Lambda function
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
配列を返します。 Array(T)
例
単一配列を用いた例
2つの配列を用いた例
arrayFilter
Introduced in: v1.1
ラムダ関数が真を返すソース配列の要素のみを含む配列を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
ソース配列の部分集合を返します。 Array(T)
例
例1
例2
arrayFirst
Introduced in: v1.1
func(x[, y1, y2, ... yN])
が真を返すソース配列の最初の要素を返します。そうでない場合はデフォルト値を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。 Lambda function. -source_arr
— 処理するソース配列。Array(T)
. -[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
.
返される値
ラムダが真であるソース配列の最初の要素を返します。そうでない場合は型Tのデフォルト値を返します。
例
使用例
一致しない場合
arrayFirstIndex
Introduced in: v1.1
func(x[, y1, y2, ... yN])
が真を返すソース配列の最初の要素のインデックスを返します。そうでない場合は0
を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。 Lambda function. -source_arr
— 処理するソース配列。Array(T)
. -[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
.
返される値
func
が真であるソース配列の最初の要素のインデックスを返します。そうでない場合は0
を返します。 UInt32
例
使用例
一致しない場合
arrayFirstOrNull
Introduced in: v1.1
func(x[, y1, y2, ... yN])
が真を返すソース配列の最初の要素を返します。そうでない場合はNULL
を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列(x
)と条件配列(y
)の要素に対して動作するラムダ関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供するN個の条件配列。Array(T)
返される値
func
が真であるソース配列の最初の要素を返します。そうでない場合はNULL
を返します。
例
使用例
一致しない場合
arrayFlatten
Introduced in: v20.1
配列の配列をフラットな配列に変換します。
関数:
- 任意の深さのネストされた配列に適用されます。
- すでにフラットな配列は変更しません。
フラット化された配列には、すべてのソース配列からのすべての要素が含まれます。
構文
引数
arr
— 多次元配列。Array(Array(T))
返される値
多次元配列からフラットな配列を返します。 Array(T)
例
使用例
arrayFold
Introduced in: v23.10
同じサイズの1つ以上の配列にラムダ関数を適用し、結果をアキュムレータに収集します。
構文
引数
λ(x, x1 [, x2, x3, ... xN])
— アキュムレータacc
と配列の値からの演算となるラムダ関数λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN])
。Lambda function
arr1 [, arr2, arr3, ... arrN]
— 操作対象のN個の配列。Array(T)
acc
— Lambda関数の戻り値型と同じ型のアキュムレータ値。
返される値
最終的なacc
値を返します。
例
使用例
フィボナッチ数列
複数の配列を用いた例
arrayIntersect
Introduced in: v1.1
複数の配列を取得し、すべてのソース配列に存在する要素を含む配列を返します。結果は一意の値のみを含みます。
構文
引数
arrN
— 新しい配列を作成するためのN個の配列。Array(T)
.
返される値
すべてのN個の配列に存在する一意の要素を含む配列を返します。 Array(T)
例
使用例
arrayJaccardIndex
Introduced in: v23.7
2つの配列のJaccard指数を返します。
構文
引数
返される値
arr_x
とarr_y
のJaccard指数を返します。 Float64
例
使用例
arrayJoin
Introduced in: v1.1
arrayJoin
関数は、配列を含む行を受け取り、それを展開して複数の行を生成します - 配列内の各要素に対して1つの行を生成します。
これは、入力値を同じ行内の出力値にマッピングする ClickHouse の通常の関数や、行のグループを「圧縮」または「集約」して単一の要約行(または GROUP BY
と一緒に使用された場合、要約行内の単一の値)を生成する集約関数とは対照的です。
この関数が適用されるカラムの値を除いて、各カラムのすべての値は単にコピーされます。 これらは、それに対応する配列の値に置き換えられます。
構文
引数
arr
— 展開する配列。Array(T)
戻り値
arr
から展開された行のセットを返します。
例
基本的な使用法
arrayJoin はクエリのすべてのセクションに影響します
複数の arrayJoin 関数の使用
最適化による予期しない結果
ARRAY JOIN 構文の使用
タプルの使用
arrayLast
Introduced in: v1.1
ラムダ func(x [, y1, y2, ... yN])
が真を返すソース配列の最後の要素を返します。そうでなければ、デフォルト値を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。 ラムダ関数。source
— 処理するソース配列。Array(T)
。[, cond1, ... , condN]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
。
戻り値
func
が真であるソース配列の最後の要素を返し、そうでなければ T
のデフォルト値を返します。
例
使用例
一致なし
arrayLastIndex
Introduced in: v1.1
func(x[, y1, y2, ... yN])
が真を返すソース配列の最後の要素のインデックスを返します。そうでなければ '0' を返します。
構文
引数
func(x[, y1, ..., yN])
— ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
func
が真であるソース配列の最後の要素のインデックスを返し、そうでなければ 0
を返す UInt32
例
使用例
一致なし
arrayLastOrNull
Introduced in: v1.1
ラムダ func(x [, y1, y2, ... yN])
が真を返すソース配列の最後の要素を返します。そうでなければ NULL
を返します。
構文
引数
func(x [, y1, ..., yN])
— ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。 ラムダ関数。source_arr
— 処理するソース配列。Array(T)
。[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
。
戻り値
λ
が真でないソース配列の最後の要素を返し、そうでなければ NULL
を返します。
例
使用例
一致なし
arrayLevenshteinDistance
Introduced in: v25.4
2つの配列の間のレーヴェンシュタイン距離を計算します。
構文
引数
戻り値
最初の配列と2番目の配列の間のレーヴェンシュタイン距離。 Float64
例
使用例
arrayLevenshteinDistanceWeighted
Introduced in: v25.4
カスタムの重みを持つ2つの配列のレーヴェンシュタイン距離を計算します。 配列の要素数とその重みは一致している必要があります。
構文
引数
from
— 最初の配列。Array(T)
。to
— 2番目の配列。Array(T)
。from_weights
— 最初の配列の重み。Array((U)Int*|Float*)
to_weights
— 2番目の配列の重み。Array((U)Int*|Float*)
戻り値
各要素のカスタム重みを持つ最初の配列と2番目の配列の間のレーヴェンシュタイン距離 Float64
例
使用例
arrayMap
Introduced in: v1.1
ラムダ関数を各要素に適用して得られた配列を返します。
構文
引数
戻り値
ラムダの結果から得られた配列を返します Array(T)
例
使用例
異なる配列からの要素のタプルを作成
arrayMax
Introduced in: v21.1
ソース配列の中で最大の要素を返します。
ラムダ関数 func
が指定されている場合は、ラムダの結果の最大要素を返します。
構文
引数
func(x[, y1, ..., yN])
— オプション。ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
ソース配列の中で最大の要素、または提供される場合はラムダの結果の中で最大の要素を返します。
例
基本的な例
ラムダ関数を使用した場合
arrayMin
Introduced in: v21.1
ソース配列の中で最小の要素を返します。
ラムダ関数 func
が指定されている場合は、ラムダの結果の最小要素を返します。
構文
引数
func(x[, y1, ..., yN])
— オプション。ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Array(T)
cond1_arr, ...
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
ソース配列の中で最小の要素、または提供される場合はラムダの結果の中で最小の要素を返します。
例
基本的な例
ラムダ関数を使用した場合
arrayNormalizedGini
Introduced in: v25.1
正規化されたジニ係数を計算します。
構文
引数
戻り値
予測値のジニ係数、正規化された値のジニ係数、および正規化されたジニ係数 (= 前者の2つのジニ係数の比) を含むタプル Tuple(Float64, Float64, Float64)
例
使用例
arrayPartialReverseSort
Introduced in: v23.2
この関数は arrayReverseSort
と同じですが、部分ソートを可能にする limit
引数が追加されています。
並べ替えられた要素のみを保持するには arrayResize
を使用します。
構文
引数
f(arr[, arr1, ... ,arrN])
— 配列x
の要素に適用するラムダ関数。ラムダ関数
arr
— ソートされる配列。Array(T)
arr1, ... ,arrN
—f
が複数の引数を受け入れる場合の N 個の追加配列。Array(T)
limit
— ソートが行われるインデックス値。(U)Int*
戻り値
元の配列と同じサイズの配列を返し、範囲 [1..limit]
の要素が降順にソートされます。残りの要素 (limit..N]
は順序が不明です。
例
simple_int
simple_string
retain_sorted
lambda_simple
lambda_complex
arrayPartialShuffle
Introduced in: v23.2
元の配列のサイズと同じ配列を返し、範囲 [1..limit]
の要素は元の配列のランダムな部分集合です。残り (limit..n]
には、範囲 [1..limit]
に含まれない要素が無秩序に含まれます。
limit
の値は範囲 [1..n]
内にある必要があります。範囲外の値は、完全な arrayShuffle
を実行することと同等です:
構文
引数
arr
— シャッフルする配列。Array(T)
seed
— オプション。乱数生成に使用されるシード。指定しない場合は、ランダムなものが使用されます。(U)Int*
limit
— オプション。要素のスワップを制限する数、範囲[1..N]
内。(U)Int*
戻り値
部分的にシャッフルされた要素を含む配列。 Array(T)
例
no_limit1
no_limit2
random_seed
explicit_seed
materialize
arrayPartialSort
Introduced in: v23.2
この関数は arraySort
と同じですが、部分ソートを可能にする limit
引数が追加されています。
並べ替えられた要素のみを保持するには arrayResize
を使用します。
構文
引数
f(arr[, arr1, ... ,arrN])
— 配列x
の要素に適用するラムダ関数。ラムダ関数
arr
— ソートされる配列。Array(T)
arr1, ... ,arrN
—f
が複数の引数を受け入れる場合の N 個の追加配列。Array(T)
limit
— ソートが行われるインデックス値。(U)Int*
戻り値
元の配列と同じサイズの配列を返し、範囲 [1..limit]
の要素が昇順にソートされます。残りの要素 (limit..N]
は順序が不明です。
例
simple_int
simple_string
retain_sorted
lambda_simple
lambda_complex
arrayPopBack
Introduced in: v1.1
配列から最後の要素を削除します。
構文
引数
arr
— 最後の要素を削除する配列。Array(T)
戻り値
最後の要素が削除された arr
と同一の配列を返します Array(T)
例
使用例
arrayPopFront
Introduced in: v1.1
配列から最初のアイテムを削除します。
構文
引数
arr
— 最初の要素を削除する配列。Array(T)
戻り値
最初の要素が削除された arr
と同一の配列を返します Array(T)
例
使用例
arrayProduct
Introduced in: v21.1
ソース配列の要素の積を返します。
ラムダ関数 func
が指定されている場合は、ラムダの結果の積を返します。
構文
引数
func(x[, y1, ..., yN])
— オプション。ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
ソース配列の要素の積を返し、または提供される場合はラムダの結果の積を返します。 Float64
例
基本的な例
ラムダ関数を使用した場合
arrayPushBack
Introduced in: v1.1
配列の末尾に1つのアイテムを追加します。
構文
引数
- 数値の配列には数値のみが追加でき、文字列の配列には文字列のみが追加できます。
- 数値を追加する場合、ClickHouse は自動的にデータ型に合わせて
x
の型を設定します。 NULL
にすることができます。この関数は配列にNULL
要素を追加し、配列要素の型はNullable
に変換されます。
ClickHouse のデータ型の詳細については、データ型を参照してください。
戻り値
末尾に追加された値 x
を持つ arr
と同一の配列を返します Array(T)
例
使用例
arrayPushFront
Introduced in: v1.1
配列の先頭に1つの要素を追加します。
構文
引数
- 数値の配列には数値のみが追加でき、文字列の配列には文字列のみが追加できます。
- 数値を追加する場合、ClickHouse は自動的にデータ型に合わせて
x
の型を設定します。 NULL
にすることができます。この関数は配列にNULL
要素を追加し、配列要素の型はNullable
に変換されます。
ClickHouse のデータ型の詳細については、データ型を参照してください。
戻り値
先頭に追加された値 x
を持つ arr
と同一の配列を返します Array(T)
例
使用例
arrayROCAUC
Introduced in: v20.4
受信者動作特性 (ROC) 曲線の下の面積を計算します。 ROC曲線は、真陽性率 (TPR) を y 軸に、偽陽性率 (FPR) を x 軸にしてすべての閾値をプロットすることで作成されます。 結果の値はゼロから一の範囲であり、高い値はモデルのパフォーマンスが良いことを示します。
ROC AUC (単に AUC とも呼ばれます) は、機械学習における概念です。 詳細については、こちら、こちら、およびこちらを参照してください。
構文
引数
scores
— スコア予測モデルが提供します。Array((U)Int*)
またはArray(Float*)
labels
— サンプルのラベル、通常は正のサンプルに対しては1、負のサンプルに対しては0です。Array((U)Int*)
またはEnum
scale
— オプション。正規化された面積を返すかどうかを決定します。falseの場合、TP(真陽性)×FP(偽陽性)曲線の下の面積を返します。デフォルト値: true。Bool
partial_offsets
—- ROC曲線の全体のAUCの代わりに、ROC曲線の下の部分的な面積を計算するための4つの非負整数の配列。このオプションは、ROC AUCの分散計算に便利です。配列は次の要素を含む必要があります [
higher_partitions_tp
,higher_partitions_fp
,total_positives
,total_negatives
]。 Array の非負の整数。 オプション。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] のスコアを含む場合があります。
戻り値
受信者動作特性 (ROC) 曲線の下の面積を返します。 Float64
例
使用例
arrayRandomSample
Introduced in: v23.10
入力配列のランダムな samples
個の要素のサブセットを返します。 samples
が入力配列のサイズを超える場合、サンプルサイズは配列のサイズに制限されます。つまり、全ての配列要素が返されますが、その順序は保証されません。この関数は、フラットな配列とネストされた配列の両方を処理できます。
構文
引数
戻り値
入力配列からのランダムサンプルの要素を含む配列 Array(T)
例
使用例
多次元配列を使用する
arrayReduce
Introduced in: v1.1
配列の要素に集約関数を適用し、その結果を返します。
集約関数の名前は、シングルクオートで囲まれた文字列 'max'
, 'sum'
として渡されます。
パラメトリック集約関数を使用する場合、関数名の後ろに括弧内にパラメータを示します 'uniqUpTo(6)'
。
構文
引数
戻り値
集約関数の結果を返します
例
使用例
複数の引数を持つ集約関数の例
パラメトリック集約関数の例
arrayReduceInRanges
Introduced in: v20.4
指定された範囲内の配列要素に集約関数を適用し、各範囲に対応する結果を含む配列を返します。
この関数は、複数の arrayReduce(agg_func, arraySlice(arr1, index, length), ...)
の結果と同じ結果を返します。
構文
引数
agg_f
— 使用する集約関数の名前。String
ranges
— 集約を行う範囲。インデックスi
から始まり、集約を行う範囲r
を含むタプル(i, r)
の配列。Array(T)
またはTuple(T)
arr1 [, arr2, ... ,arrN)]
— 集約関数への引数としての N 個の配列。Array(T)
戻り値
指定された範囲内の集約関数の結果を含む配列を返します Array(T)
例
使用例
arrayResize
Introduced in: v1.1
配列の長さを変更します。
構文
引数
arr
— サイズを変更する配列。Array(T)
size
—- 配列の新しい長さ。
元の配列のサイズよりも小さい場合、配列は右側から切り詰められます。
サイズが元の配列のサイズより大きい場合、配列は右側に
extender
値またはデータ型のデフォルト値で拡張されます。 extender
— 配列を拡張するために使用する値。NULL
であることができます。
戻り値
長さ size
の配列。 Array(T)
例
例 1
例 2
arrayReverse
Introduced in: v1.1
指定された配列の要素の順序を反転します。
reverse(arr)
関数は同じ機能を提供しますが、配列だけでなく他のデータ型でも動作します。
構文
引数
arr
— 反転する配列。Array(T)
戻り値
反転された順序の要素を含む元の配列と同じサイズの配列を返します。 Array(T)
例
使用例
arrayReverseFill
Introduced in: v20.1
arrayReverseFill
関数は、ソース配列の最後の要素から最初の要素に向かって逐次的に処理を行い、各位置でソースと条件の配列の要素を使用してラムダ条件を評価します。条件が位置 i で偽に評価されると、その要素は配列の現在の状態からの位置 i+1 の要素で置き換えられます。最後の要素は、条件に関係なく常に保持されます。
構文
引数
func(x[, y1, ..., yN])
— ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Array(T)
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
ラムダの結果に基づいてソース配列の要素を置き換えた配列を返します。 Array(T)
例
単一配列の例
二つの配列の例
arrayReverseSort
Introduced in: v1.1
配列の要素を降順にソートします。
関数 f
が指定されている場合、提供された配列はその関数の結果に従ってソートされ、その後ソート済みの配列は反転されます。
f
が複数の引数を受け取る場合、arrayReverseSort
関数には、func
の引数に対応する複数の配列が渡されます。
ソートする配列に -Inf
, NULL
, NaN
, または Inf
が含まれている場合、それらは以下の順序でソートされます:
-Inf
Inf
NaN
NULL
arrayReverseSort
は 高次関数です。
構文
引数
f(y1[, y2 ... yN])
— 配列x
の要素に適用するラムダ関数。 -arr
— ソートされる配列。Array(T)
-arr1, ..., yN
— オプション。f
が複数の引数を受け入れる場合の N 個の追加配列。
戻り値
ラムダ関数が提供されていない場合は降順にソートされた配列 x を返し、そうでなければ提供されたラムダ関数のロジックに従ってソートされた配列を返します。その後、反転されます。 Array(T)
。
例
例 1
例 2
arrayReverseSplit
Introduced in: v20.1
ソース配列を複数の配列に分割します。 func(x[, y1, ..., yN])
がゼロ以外の値を返すと、配列はその要素の右側で分割されます。配列は最後の要素の後に分割されることはありません。
構文
引数
func(x[, y1, ..., yN])
— ソース配列 (x
) と条件配列 (y
) の要素に対して操作するラムダ関数。ラムダ関数
source_arr
— 処理するソース配列。Lambda function
[, cond1_arr, ... , condN_arr]
— オプション。ラムダ関数に追加の引数を提供する N 個の条件配列。Array(T)
戻り値
配列の配列を返します。 Array(Array(T))
例
使用例
arrayRotateLeft
Introduced in: v23.8
指定された数の要素だけ配列を左に回転させます。n
の負の値は、回転の絶対値を持つ右回転として扱われます。
構文
引数
arr
— 要素を回転させる配列。Array(T)
。 -n
— 回転させる要素の数。(U)Int8/16/32/64
。
戻り値
指定された数の要素だけ左に回転された配列。 Array(T)
例
使用例
負の n の値
arrayRotateRight
Introduced in: v23.8
指定された数の要素だけ配列を右に回転させます。n
の負の値は、回転の絶対値を持つ左回転として扱われます。
構文
引数
arr
— 要素を回転させる配列。Array(T)
。 -n
— 回転させる要素の数。(U)Int8/16/32/64
。
戻り値
指定された数の要素だけ右に回転された配列。 Array(T)
例
使用例
負の n の値
arrayShiftLeft
Introduced in: v23.8
指定された数の要素だけ配列を左にシフトします。新しい要素は、提供された引数または配列要素タイプのデフォルト値で埋められます。要素数が負の場合、配列は右にシフトします。
Syntax
Arguments
arr
— シフトする要素の配列。Array(T)
.n
— シフトする要素の数。(U)Int8/16/32/64
.default
— オプション。新しい要素のデフォルト値。
Returned value
指定された数の要素だけ左にシフトされた配列 Array(T)
Examples
Usage example
Negative value of n
Using a default value
arrayShiftRight
Introduced in: v23.8
指定された数の要素だけ配列を右にシフトします。新しい要素は、提供された引数または配列要素タイプのデフォルト値で埋められます。要素数が負の場合、配列は左にシフトします。
Syntax
Arguments
arr
— シフトする要素の配列。Array(T)
n
— シフトする要素の数。(U)Int8/16/32/64
default
— オプション。新しい要素のデフォルト値。
Returned value
指定された数の要素だけ右にシフトされた配列 Array(T)
Examples
Usage example
Negative value of n
Using a default value
arrayShingles
Introduced in: v24.1
シングルの配列を生成します(文字列のn-gramsに類似)。つまり、入力配列の指定された長さの連続するサブ配列です。
Syntax
Arguments
Returned value
生成されたシングルの配列 Array(T)
Examples
Usage example
arrayShuffle
Introduced in: v23.2
元の配列と同じサイズの配列を返し、順番はシャッフルされています。要素はその順番の全ての可能な順列が同じ確率で出現するように並べ替えられます。
この関数は定数を物質化しません。
Syntax
Arguments
Returned value
シャッフルされた要素を持つ配列 Array(T)
Examples
Example without seed (unstable results)
Example without seed (stable results)
arraySimilarity
Introduced in: v25.4
2つの配列の類似度を重み付きLevenshtein距離に基づいて0
から1
の範囲で計算します。
Syntax
Arguments
from
— 最初の配列Array(T)
to
— 2番目の配列Array(T)
from_weights
— 最初の配列の重み。Array((U)Int*|Float*)
to_weights
— 2番目の配列の重み。Array((U)Int*|Float*)
Returned value
重み付きLevenshtein距離に基づいて0
から1
の範囲での類似度を返します Float64
Examples
Usage example
arraySlice
Introduced in: v1.1
配列のスライスを返し、NULL
要素を含みます。
Syntax
Arguments
arr
— スライスする配列。Array(T)
offset
— 配列の端からのインデント。正の値は左のオフセット、負の値は右のインデントを示します。配列項目の番号付けは1
から始まります。(U)Int*
length
— 必要なスライスの長さ。負の値を指定すると、関数はオープンスライス[offset, array_length - length]
を返します。値を省略すると、関数はスライス[offset, the_end_of_array]
を返します。(U)Int*
Returned value
指定されたoffset
からlength
要素のスライスを返します Array(T)
Examples
Usage example
arraySort
Introduced in: v1.1
提供された配列の要素を昇順にソートします。lambda関数f
が指定されている場合、ソート順は配列の各要素にlambdaを適用した結果によって決まります。lambdaが複数の引数を受け取る場合、arraySort
関数はf
の引数に対応するいくつかの配列を渡します。
ソートする配列に-Inf
、NULL
、NaN
、またはInf
が含まれている場合、次の順序でソートされます。
-Inf
Inf
NaN
NULL
arraySort
は高階関数です。
Syntax
Arguments
f(y1[, y2 ... yN])
— 配列x
の要素に適用するlambda関数。arr
— ソートされる配列。Array(T)
arr1, ..., yN
— オプション。f
が複数の引数を受け取る場合の追加の配列。
Returned value
lambda関数が提供されていない場合は昇順にソートされた配列arr
を返し、そうでない場合は提供されたlambda関数のロジックに従ってソートされた配列を返します Array(T)
。
Examples
Example 1
Example 2
Example 3
arraySplit
Introduced in: v20.1
ソース配列を複数の配列に分割します。func(x [, y1, ..., yN])
がゼロ以外の値を返すと、配列はその要素の左側で分割されます。配列は最初の要素の前では分割されません。
Syntax
Arguments
func(x[, y1, ..., yN])
— ソース配列(x
)および条件配列(y
)の要素に作用するlambda関数。Lambda function.source_arr
— 分割するソース配列Array(T)
.[, cond1_arr, ... , condN_arr]
— オプション。lambda関数に追加の引数を提供するN個の条件配列。Array(T)
.
Returned value
配列の配列を返します Array(Array(T))
Examples
Usage example
arraySum
Introduced in: v21.1
ソース配列の要素の合計を返します。
lambda関数func
が指定されている場合、lambdaの結果の要素の合計を返します。
Syntax
Arguments
func(x[, y1, ..., yN])
— オプション。ソース配列(x
)および条件配列(y
)の要素に作用するlambda関数。Lambda function
source_arr
— 処理するソース配列。Array(T)
, cond1_arr, ... , condN_arr]
— オプション。lambda関数に追加の引数を提供するN個の条件配列。Array(T)
Returned value
ソース配列の要素の合計、または提供された場合はlambdaの結果の要素の合計を返します。
Examples
Basic example
Usage with lambda function
arraySymmetricDifference
Introduced in: v25.4
複数の配列を受け取り、すべてのソース配列に存在しない要素を含む配列を返します。結果にはユニークな値のみが含まれます。
2つ以上の集合の対称差は_数学的に定義されたのは、入力要素の中で奇数回出現する全ての要素の集合です。一方、関数arraySymmetricDifference
は単に全ての入力集合に出現しない入力要素の集合を返します。
Syntax
Arguments
arrN
— 新しい配列を作成するためのN配列。Array(T)
.
Returned value
すべてのソース配列に存在しない異なる要素の配列を返します Array(T)
Examples
Usage example
arrayUnion
Introduced in: v24.10
複数の配列を受け取り、その一つのソース配列に存在するすべての要素を含む配列を返します。結果にはユニークな値のみが含まれます。
Syntax
Arguments
arrN
— 新しい配列を作成するためのN配列。Array(T)
Returned value
ソース配列からの異なる要素を持つ配列を返します Array(T)
Examples
Usage example
arrayUniq
Introduced in: v1.1
単一の引数が渡された場合、配列内の異なる要素の数をカウントします。複数の引数が渡された場合、複数の配列における対応する位置の要素から作られる異なるタプルの数をカウントします。
例えばSELECT arrayUniq([1,2], [3,4], [5,6])
は次のタプルを形成します:
- 位置1: (1,3,5)
- 位置2: (2,4,6)
その後、ユニークなタプルの数をカウントします。この場合、2
となります。
渡されたすべての配列は同じ長さでなければなりません。
配列内のユニークなアイテムのリストを取得したい場合は、arrayReduce('groupUniqArray', arr)
を使用できます。
Syntax
Arguments
arr1
— ユニークな要素の数をカウントするための配列。Array(T)
[, arr2, ..., arrN]
— オプション。複数の配列における対応する位置のユニークなタプルの数をカウントするために使用される追加の配列。Array(T)
Returned value
単一の引数の場合はユニークな要素の数を返し、複数の引数の場合は配列間で対応する位置にある要素から作られるユニークなタプルの数を返します。 UInt32
Examples
Single argument
Multiple argument
arrayWithConstant
Introduced in: v20.1
長さlength
の配列を生成し、定数x
で埋めます。
Syntax
Arguments
length
— 配列内の要素数。(U)Int*
x
— 配列内のN
要素の値、任意のタイプ。
Returned value
値x
のN
要素を持つ配列を返します。 Array(T)
Examples
Usage example
arrayZip
Introduced in: v20.1
複数の配列を1つの配列に結合します。結果の配列は、引数の示された順にグループ化された元の配列の対応する要素を含みます。
Syntax
Arguments
arr1, arr2, ... , arrN
— 1つの配列にまとめるN個の配列。Array(T)
Returned value
タプルとしてグループ化された元の配列から要素を持つ配列を返します。タプル内のデータ型は入力配列の型と同じであり、引数として渡された配列の順序に従います。 Array(T)
Examples
Usage example
arrayZipUnaligned
Introduced in: v20.1
複数の配列を1つの配列に結合し、アラインされていない配列(異なる長さの配列)を許可します。結果の配列は、引数の示された順にグループ化された元の配列の対応する要素を含みます。
Syntax
Arguments
arr1, arr2, ..., arrN
— 1つの配列にまとめるN個の配列。Array(T)
Returned value
タプルとしてグループ化された元の配列から要素を持つ配列を返します。タプル内のデータ型は入力配列の型と同じであり、引数として渡された配列の順序に従います。 Array(T)
またはTuple(T1, T2, ...)
Examples
Usage example
countEqual
Introduced in: v1.1
配列内のx
と等しい要素の数を返します。arrayCount(elem -> elem = x, arr)
と同等です。
NULL
要素は個別の値として処理されます。
Syntax
Arguments
arr
— 検索対象の配列。Array(T)
x
— 配列内でカウントされる値。任意のタイプ。
Returned value
配列内のx
と等しい要素の数を返します UInt64
Examples
Usage example
empty
Introduced in: v1.1
入力配列が空であるかどうかをチェックします。
配列は要素が含まれていない場合、空と見なされます。
optimize_functions_to_subcolumns
設定を有効にすることで最適化できます。optimize_functions_to_subcolumns = 1
を設定すると、関数は配列の全体を読み取って処理する代わりに、size0サブカラムのみを読み取ります。クエリSELECT empty(arr) FROM TABLE;
はSELECT arr.size0 = 0 FROM TABLE;
に変換されます。
Syntax
Arguments
arr
— 入力配列。Array(T)
Returned value
空の配列の場合は1
、空でない配列の場合は0
を返します UInt8
Examples
Usage example
emptyArrayDate
Introduced in: v1.1
空のDate配列を返します。
Syntax
Arguments
- なし。
Returned value
空のDate配列。 Array(T)
Examples
Usage example
emptyArrayDateTime
Introduced in: v1.1
空のDateTime配列を返します。
Syntax
Arguments
- なし。
Returned value
空のDateTime配列。 Array(T)
Examples
Usage example
emptyArrayFloat32
Introduced in: v1.1
空のFloat32配列を返します。
Syntax
Arguments
- なし。
Returned value
空のFloat32配列。 Array(T)
Examples
Usage example
emptyArrayFloat64
Introduced in: v1.1
空のFloat64配列を返します。
Syntax
Arguments
- なし。
Returned value
空のFloat64配列。 Array(T)
Examples
Usage example
emptyArrayInt16
Introduced in: v1.1
空のInt16配列を返します。
Syntax
Arguments
- なし。
Returned value
空のInt16配列。 Array(T)
Examples
Usage example
emptyArrayInt32
Introduced in: v1.1
空のInt32配列を返します。
Syntax
Arguments
- なし。
Returned value
空のInt32配列。 Array(T)
Examples
Usage example
emptyArrayInt64
Introduced in: v1.1
空のInt64配列を返します。
Syntax
Arguments
- なし。
Returned value
空のInt64配列。 Array(T)
Examples
Usage example
emptyArrayInt8
Introduced in: v1.1
空のInt8配列を返します。
Syntax
Arguments
- なし。
Returned value
空のInt8配列。 Array(T)
Examples
Usage example
emptyArrayString
Introduced in: v1.1
空のString配列を返します。
Syntax
Arguments
- なし。
Returned value
空のString配列。 Array(T)
Examples
Usage example
emptyArrayToSingle
Introduced in: v1.1
空の配列を受け取り、デフォルト値と等しい単一要素の配列を返します。
Syntax
Arguments
arr
— 空の配列。Array(T)
Returned value
配列のデフォルトタイプの単一値を持つ配列を返します。 Array(T)
Examples
Basic example
emptyArrayUInt16
Introduced in: v1.1
空のUInt16配列を返します。
Syntax
Arguments
- なし。
Returned value
空のUInt16配列。 Array(T)
Examples
Usage example
emptyArrayUInt32
Introduced in: v1.1
空のUInt32配列を返します。
Syntax
Arguments
- なし。
Returned value
空のUInt32配列。 Array(T)
Examples
Usage example
emptyArrayUInt64
Introduced in: v1.1
空のUInt64配列を返します。
Syntax
Arguments
- なし。
Returned value
空のUInt64配列。 Array(T)
Examples
Usage example
emptyArrayUInt8
Introduced in: v1.1
空のUInt8配列を返します。
Syntax
Arguments
- なし。
Returned value
空のUInt8配列。 Array(T)
Examples
Usage example
has
Introduced in: v1.1
配列が指定された要素を含むかどうかを返します。
Syntax
Arguments
arr
— ソース配列。Array(T)
x
— 配列で検索される値。
Returned value
指定された要素が配列に含まれている場合は1
、そうでなければ0
を返します。 UInt8
Examples
Basic usage
Not found
hasAll
Introduced in: v1.1
ある配列が別の配列の部分集合であるかどうかをチェックします。
- 空の配列は任意の配列の部分集合です。
Null
は値として処理されます。- 両方の配列における値の順序は重要ではありません。
Syntax
Arguments
set
— 要素の集合を持つ任意のタイプの配列。Array(T)
subset
— 要素がset
の部分集合であるかどうかをテストするためにset
と共通のスーパタイプを共有する任意のタイプの配列。Array(T)
Returned value
1
、set
がsubset
のすべての要素を含む場合。0
、そうでない場合。
集合と部分集合の要素が共通のスーパタイプを共有しない場合、NO_COMMON_TYPE
例外が発生します。
Examples
Empty arrays
Arrays containing NULL values
Arrays containing values of a different type
Arrays containing String values
Arrays without a common type
Array of arrays
hasAny
Introduced in: v1.1
2つの配列がいくつかの要素によって交差しているかどうかをチェックします。
Null
は値として処理されます。- 両方の配列における値の順序は重要ではありません。
Syntax
Arguments
Returned value
1
、arr_x
とarr_y
が少なくとも1つの似た要素を持つ場合。0
、そうでない場合。
いずれかの要素が共通のスーパタイプを共有しない場合、NO_COMMON_TYPE
例外が発生します。
Examples
One array is empty
Arrays containing NULL values
Arrays containing values of a different type
Arrays without a common type
Array of arrays
hasSubstr
Introduced in: v20.6
配列2のすべての要素が配列1に同じ順序で存在するかどうかをチェックします。したがって、この関数はarray1 = prefix + array2 + suffix
が成り立つ場合にのみ1
を返します。
言い換えれば、関数はhasAll
関数のように配列2のすべての要素が配列1に含まれているかどうかを確認します。さらに、両方の配列で要素が同じ順序であることもチェックします。
- 配列2が空である場合は、関数は
1
を返します。 Null
は値として処理されます。言い換えれば、hasSubstr([1, 2, NULL, 3, 4], [2,3])
は0
を返します。しかし、hasSubstr([1, 2, NULL, 3, 4], [2,NULL,3])
は1
を返します。- 両方の配列における値の順序は重要です。
いずれかの要素が共通のスーパタイプを共有しない場合、NO_COMMON_TYPE
例外が発生します。
Syntax
Arguments
Returned value
配列arr1
が配列arr2
を含む場合は1
を返し、そうでない場合は0
を返します。 UInt8
Examples
Both arrays are empty
Arrays containing NULL values
Arrays containing values of a different type
Arrays containing strings
Arrays with valid ordering
Arrays with invalid ordering
Array of arrays
Arrays without a common type
indexOf
Introduced in: v1.1
配列内に値'x'(1から始まる)を持つ最初の要素のインデックスを返します。配列に検索される値が含まれていない場合、この関数は0
を返します。
NULL
に設定されている要素は通常の値として処理されます。
Syntax
Arguments
Returned value
配列内に最初のx
が存在する場合はそのインデックス(1から番号が付けられます)を返し、そうでない場合は0
を返します。 UInt64
Examples
Basic example
Array with nulls
indexOfAssumeSorted
Introduced in: v24.12
配列内に値'x'(1から始まる)を持つ最初の要素のインデックスを返します。配列に検索される値が含まれていない場合、この関数は0
を返します。
indexOf
関数とは異なり、この関数は配列が昇順にソートされていると仮定します。配列がソートされていない場合、結果は未定義です。
Syntax
Arguments
Returned value
配列内に最初のx
が存在する場合はそのインデックス(1から番号が付けられます)を返し、そうでない場合は0
を返します。 UInt64
Examples
Basic example
length
Introduced in: v1.1
文字列または配列の長さを計算します。
- StringまたはFixedString引数の場合:文字列内のバイト数を計算します。
- Array引数の場合:配列の要素数を計算します。
- FixedString引数に適用される場合、関数は定数式です。
文字列内のバイト数はUnicode "code points"の数や、Unicode "grapheme clusters"(通常「文字」と呼ばれるもの)や、可視文字列の幅の数とは異なることに注意してください。
文字列にASCII NULLバイトを含めることは許容されており、それらもカウントされます。
Syntax
Arguments
x
— バイト数(String/FixedStringの場合)または要素数(Arrayの場合)を計算するための値。String
またはFixedString
またはArray(T)
Returned value
String/FixedString x
のバイト数または配列x
の要素数を返します UInt64
Examples
String example
Array example
constexpr example
unicode example
ascii_vs_utf8 example
notEmpty
Introduced in: v1.1
入力配列が非空であるかどうかをチェックします。
配列は少なくとも1つの要素を含む場合、非空と見なされます。
optimize_functions_to_subcolumns
設定を有効にすることで最適化できます。optimize_functions_to_subcolumns = 1
を設定すると、関数は配列全体を読み取って処理するのではなく、size0サブカラムのみを読み取ります。クエリSELECT notEmpty(arr) FROM table
はSELECT arr.size0 != 0 FROM TABLE
に変換されます。
Syntax
Arguments
arr
— 入力配列。Array(T)
Returned value
非空の配列の場合は1
、空の配列の場合は0
を返します UInt8
Examples
Usage example
range
Introduced in: v1.1
start
からend - 1
までの数の配列をステップで返します。
サポートされるタイプは:
UInt8/16/32/64
Int8/16/32/64
すべての引数start
、end
、step
は上記のいずれかのサポートされているタイプでなければなりません。返される配列の要素は引数のスーパタイプとなります。
- 引数のいずれかが
function_range_max_elements_in_block
で設定された要素数を超える配列を返す場合、例外が発生します。 - 引数のいずれかがNullable(nothing)タイプの
NULL
を含む場合、NULL
が返されます。引数のいずれかがNULL
値(Nullable(T)タイプ)を持つ場合、例外が発生します。
Syntax
Arguments
start
— オプション。配列の最初の要素。step
が使用される場合は必須。デフォルト値:0
。end
— 必須。配列が構築される前の数。step
— オプション。配列内の各要素の間の増分ステップを指定します。デフォルト値:1
。
Returned value
start
からend - 1
までの数の配列をステップで返します。 Array(T)
Examples
Usage example
replicate
Introduced in: v1.1
単一の値を持つ配列を作成します。
Syntax
Arguments
Returned value
arr
と同じ長さの配列を返し、値x
で埋められます。 Array(T)
Examples
Usage example
reverse
導入日: v1.1
入力配列内の要素または入力文字列内の文字の順序を逆にします。
構文
引数
返される値
要素または文字の順序が逆になった配列または文字列を返します。
例
配列を逆にする
文字列を逆にする
Distance functions
サポートされているすべての関数は distance functions documentation に記載されています。