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

array

導入バージョン: v1.1.0 関数の引数から配列を作成します。 引数は定数であり、型は共通のスーパータイプを共有している必要があります。 少なくとも 1 つの引数を渡す必要があります。そうしないと、どの型の配列を作成すべきか判断できないためです。 つまり、この関数を使って空の配列を作成することはできません。空の配列を作成するには、emptyArray* 関数を使用してください。 同じ機能を使うには、[ ] 演算子を使用します。 構文
引数
  • x1 — 任意の型 T の定数値。この引数のみを指定した場合、配列の型は T になります。 - [, x2, ..., xN]x1 と共通の上位型を持つ、追加の N 個の定数値
戻り値 配列を返します。ここで ‘T’ は、渡された引数の最小の共通型です。Array(T) 有効な使用例
Query
Response
誤った使い方
Query
Response

arrayAUCPR

導入バージョン: v20.4.0 適合率-再現率 (PR) 曲線の下面積を計算します。 適合率-再現率曲線は、すべての閾値にわたって、y 軸に適合率、x 軸に再現率をプロットして作成されます。 結果の値は 0 から 1 の範囲をとり、値が高いほどモデルの性能が高いことを示します。 PR AUC は、特に不均衡なデータセットで有用であり、そのようなケースでは ROC AUC と比べて性能をより明確に比較できます。 詳細については、こちらこちら、および こちら を参照してください。 構文
別名: 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_scoresarr_labels は、スコアのある区間に対応する、データセット全体の一部のパーティションのみを含む必要があります。 データセットは連続するパーティションに分割する必要があり、各パーティションには、スコアが特定の範囲に入るデータの部分集合が含まれている必要があります。 例えば:
  • あるパーティションには、範囲 [0, 0.5) のすべてのスコアを含めることができます。
  • 別のパーティションには、範囲 [0.5, 1.0] のスコアを含めることができます。
戻り値 precision-recall (PR) 曲線の下面積を返します。Float64 使用例
Query
Response

arrayAll

導入バージョン: v1.1.0 ラムダ func(x [, y1, y2, ... yN]) がすべての要素に対して true を返す場合は 1 を返し、それ以外の場合は 0 を返します。 構文
引数
  • func(x[, y1, ..., yN]) — ソース配列 (x) と条件配列 (y) の要素に対して動作するラムダ関数です。Lambda function
  • source_arr — 処理するソース配列です。Array(T)
  • cond1_arr, ... — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
戻り値 すべての要素に対してラムダ関数が true を返す場合は 1、それ以外の場合は 0 を返します。UInt8 すべての要素が一致する場合
Query
Response
すべての要素が一致するとは限りません
Query
Response

arrayAutocorrelation

導入バージョン: v26.4.0 配列の自己相関を計算します。 max_lag が指定されている場合は、[0, max_lag) の範囲内のラグについてのみ相関を計算します。 max_lag が指定されていない場合は、取り得るすべてのラグについて計算します。 構文
引数
  • arr — 数値の Array。Array(T)
  • max_lag — 任意。計算するラグの最大数です。0 以上の整数である必要があります。Integer
戻り値 Float64 の Array を返します。分散が 0 の場合は NaN を返します。Array(Float64) 線形
Query
Response
対称的
Query
Response
定数
Query
Response
制限あり
Query
Response

arrayAvg

導入バージョン: v21.1.0 ソース配列の要素の平均値を返します。 ラムダ関数 func が指定されている場合は、ラムダ関数の結果の要素の平均値を返します。 構文
引数
  • func(x[, y1, ..., yN]) — 任意。ソース配列 (x) と条件配列 (y) の要素に対して適用されるラムダ関数。Lambda function
  • source_arr — 処理対象のソース配列。Array(T)
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 ソース配列の要素の平均値を返します。ラムダ関数が指定されている場合は、その結果の要素の平均値を返します。Float64 基本的な例
Query
Response
ラムダ関数を使用する場合
Query
Response

arrayBottomK

導入バージョン: v26.6.0 入力 Array 内の最小の K 個の要素を、昇順にソートした配列として返します。 ラムダ関数 f を指定した場合、要素同士は各要素に f を適用した結果に基づいて比較されます。 f が複数の引数を受け取る場合は、追加の配列が arrayBottomK に渡され、それらの要素が f の引数に対応します。 NULL 値はスキップされ、結果には含まれません。結果のサイズは最大 K です。 また、入力配列に含まれる非 NULL の要素数が K 未満の場合は、これより小さくなることがあります。 結果の要素型は、入力要素型に対応する非 Nullable 型です。 arrayBottomK高階関数です。 関連項目:
  • 代わりに最大の K 個の要素を返す arrayTopK
  • 同じ K 個の要素を位置 [1..K] に返しますが、 残りの要素も順序未指定のまま保持し、null をスキップしない arrayPartialSort
構文
引数
  • f(arr[, arr1, ... ,arrN]) — 任意。各要素のソートキーを計算するためのラムダ関数。ラムダ関数
  • K — 返される最小要素数。(U)Int8/16/32/64
  • arr — 配列。Array(T)
  • arr1, ... ,arrNf が複数の引数を受け取る場合に使う、追加の N 個の配列。Array(T)
戻り値 arr のうち値が最も小さい要素 (またはラムダ関数の結果が最も小さい要素) を最大 K 個、昇順にソートして返します。 NULL 値はスキップされます。入力の型が Nullable(T) の場合でも、返される配列の要素型は T です。 simple_int
Query
Response
skip_nulls
Query
Response
fewer_than_k
Query
Response
lambda_simple
Query
Response
lambda_multi
Query
Response

arrayCompact

導入バージョン: v20.1.0 配列から、null 値を含む連続した重複要素を削除します。結果の配列における値の順序は、ソース配列での順序によって決まります。 構文
引数
  • arr — 重複を削除する対象の配列。Array(T)
戻り値 重複した値を含まない配列を返します Array(T) 使用例
Query
Response

arrayConcat

導入バージョン: v1.1.0 引数として渡された配列を結合します。 Syntax
引数
  • arr1 [, arr2, ... , arrN] — 連結する N 個の配列。Array(T)
戻り値 指定された配列引数を連結した 1 つの配列を返します。Array(T) 使用例
Query
Response

arrayCount

導入バージョン: v1.1.0 func(arr1[i], ..., arrN[i]) が true を返す要素の個数を返します。 func が指定されていない場合は、配列内の 0 以外の要素の個数を返します。 arrayCount高階関数です。 構文
引数
  • func — オプション。各配列の各要素に適用する関数。ラムダ関数
  • arr1, ..., arrN — N 個の配列。Array(T)
戻り値 func が true を返す要素の数を返します。func を指定しない場合は、配列内の 0 以外の要素数を返します。UInt32 使用例
Query
Response

arrayCumSum

導入バージョン: v1.1.0 ソース配列の要素について、部分和 (累積和) を格納した配列を返します。ラムダ関数を指定した場合は、各位置の配列要素にラムダ関数を適用した結果に基づいて和が計算されます。 構文
引数
  • func — 任意。各位置の配列要素に適用するラムダ関数。ラムダ関数
  • arr1 — 数値のソース配列。Array(T)
  • [arr2, ..., arrN] — 任意。同じサイズの追加の配列です。指定した場合は、ラムダ関数の引数として渡されます。Array(T)
戻り値 ソース配列の要素の累積和からなる配列を返します。結果の型は、入力配列の数値型と一致します。Array(T) 基本的な使い方
Query
Response
ラムダ式を使用
Query
Response

arrayCumSumNonNegative

導入バージョン: v18.12.0 ソース配列の要素の部分和 (累積和) からなる配列を返します。累積和が負になった場合は、0 に置き換えられます。ラムダ関数が指定されている場合、各位置の配列要素にラムダ関数を適用した結果に基づいて和が計算されます。 構文
引数
  • func — 任意。各位置の配列要素に適用するラムダ関数。ラムダ関数
  • arr1 — 数値からなるソース配列。Array(T)
  • [arr2, ..., arrN] — 任意。同じサイズの追加配列です。指定した場合は、ラムダ関数に引数として渡されます。Array(T)
戻り値 ソース配列の要素の累積和からなる配列を返します。累積和が途中で負になった場合は 0 に置き換えられます。結果の型は入力配列の数値型と一致します。Array(T) 基本的な使い方
Query
Response
ラムダ式を使用する場合
Query
Response

arrayDifference

導入バージョン: v1.1.0 隣接する配列要素どうしの差分を格納した配列を返します。 結果の配列の最初の要素は 0、2 番目は arr[1] - arr[0]、3 番目は arr[2] - arr[1]、以降も同様です。 結果の配列の要素の型は、減算における型推論の規則によって決まります (例: UInt8 - UInt8 = Int16) 。 構文
引数
  • arr — 隣接する要素同士の差分を計算する対象の Array。 Array(T)
戻り値 隣接する配列要素同士の差分を格納した配列を返します。 UInt* 使用例
Query
Response
結果型が Int64 の場合のオーバーフロー例
Query
Response

arrayDistinct

導入バージョン: v1.1.0 配列内の重複を除いた要素のみを含む配列を返します。 構文
引数
  • arr — 重複のない要素を抽出する対象の Array。Array(T)
戻り値 重複のない要素を含む Array を返します Array(T) 使用例
Query
Response

arrayDotProduct

導入バージョン: v23.5.0 2 つの配列の内積を返します。
2 つのベクトルのサイズは同じである必要があります。Array と Tuple には、異なる要素型を混在させることもできます。
構文
引数 戻り値 2つのベクトルの内積。
戻り値の型は引数の型によって決まります。Array または Tuple に異なる要素型が混在している場合、結果の型は共通の上位型になります。
(U)Int* または Float* または Decimal Array の例
Query
Response
Tupleの例
Query
Response

arrayElement

導入バージョン: v1.1.0 指定された配列のインデックス n にある要素を返します。n には任意の整数型を指定できます。 インデックスが配列の範囲外の場合は、デフォルト値 (数値であれば 0、文字列であれば空文字列など) を返します。 ただし、非定数の配列引数に対して定数インデックス 0 を指定した場合は例外で、この場合は Array indices are 1-based というエラーになります。
ClickHouse の配列は 1 始まりです。
負のインデックスもサポートされています。この場合、末尾から数えた対応する要素が選択されます。たとえば、arr[-1] は配列の最後の要素です。 演算子 [n] でも同じ機能を使用できます。 構文
引数
  • arr — 検索対象の配列。Array(T). - n — 取得する要素の位置。(U)Int*.
戻り値 指定された配列引数を結合した 1 つの配列を返します。Array(T) 使用例
Query
Response
負のインデックス
Query
Response
[n]記法を使う
Query
Response
配列の範囲外のインデックス
Query
Response

arrayElementOrNull

導入バージョン: v1.1.0 指定された配列のインデックス n にある要素を取得します。n には任意の整数型を指定できます。 インデックスが配列の範囲外の場合は、デフォルト値ではなく NULL が返されます。
ClickHouse の Array は 1 始まりの配列です。
負のインデックスもサポートされています。この場合は、末尾から数えた位置に対応する要素が選択されます。たとえば、arr[-1] は配列の最後の要素です。 構文
引数
  • arrays — 任意の数の配列引数。Array
戻り値 指定された配列引数を結合した 1 つの配列を返します。Array(T) 使用例
Query
Response
負のインデックス
Query
Response
配列の添字が範囲外
Query
Response

arrayEnumerate

導入バージョン: v1.1.0 配列 [1, 2, 3, ..., length (arr)] を返します この関数は通常、ARRAY JOIN 句とともに使用されます。これにより、ARRAY JOIN の適用後に、各配列につき 1 回だけカウントできるようになります。 この関数は高階関数でも使用できます。たとえば、条件に一致する要素の配列内インデックスを取得するために使用できます。 構文
引数
  • arr — 列挙対象の配列。Array
戻り値 配列 [1, 2, 3, ..., length (arr)] を返します。Array(UInt32) ARRAY JOIN を使った基本例
Query
Response

arrayEnumerateDense

導入バージョン: v18.12.0 ソース配列内で各要素が最初に出現する位置を示す、ソース配列と同じサイズの配列を返します。 構文
引数
  • arr — 番号付けする対象の配列です。Array(T)
戻り値 arr と同じサイズの配列を返します。各要素がソース配列内で最初に現れる位置を示します。Array(T) 使用例
Query
Response

arrayEnumerateDenseRanked

導入バージョン: v20.1.0 ソース配列と同じサイズの配列を返します。この配列は、各要素がソース配列内で最初に出現する位置を示します。配列の内部をどの深さまで参照するかを指定できるため、多次元配列を列挙できます。 構文
引数
  • clear_depth — 指定したレベルで要素を別々に列挙します。max_arr_depth 以下でなければなりません。UInt*
  • arr — 列挙対象の N 次元配列。Array(T)
  • max_array_depth — 有効な最大深さです。arr の深さ以下でなければなりません。UInt*
戻り値 各要素がソース配列内で最初に出現する位置を示す配列を返します。Array 基本的な使い方
Query
Response
多次元配列での使用
Query
Response
clear_depth を増やした場合の例
Query
Response

arrayEnumerateUniq

導入バージョン: v1.1.0 ソース配列と同じサイズの配列を返します。この配列は、各要素について、同じ値を持つ要素の中での位置を示します。 この関数は、ARRAY JOIN と配列要素の集約を使用する場合に便利です。 この関数は、同じサイズの複数の配列を引数として受け取ることもできます。この場合、一意性は、すべての配列の同じ位置にある要素のタプルに対して判定されます。 構文
引数
  • arr1 — 処理する最初の配列。Array(T)
  • arr2, ... — 任意。同じサイズの追加の配列で、タプルの一意性を判定するために使用します。Array(UInt32)
戻り値 各要素について、同じ値またはタプルを持つ要素の中での位置を表す配列を返します。Array(T) 基本的な使い方
Query
Response
複数の配列
Query
Response
ARRAY JOIN 集計
Query
Response

arrayEnumerateUniqRanked

導入バージョン: v20.1.0 ソース配列と同じ次元の配列 (または多次元配列) を返します。 各要素について、同じ値を持つ要素の中で何番目に当たるかを示します。 また、配列の内部をどの深さまで見るかを指定して、多次元配列を列挙できます。 構文
引数
  • clear_depth — 指定したレベルで要素を個別に列挙します。max_arr_depth 以下の正の整数。UInt*
  • arr — 列挙対象の N 次元配列。Array(T)
  • max_array_depth — 有効な最大深度。arr の深度以下の正の整数。UInt*
戻り値 arr と同じサイズの N 次元配列を返します。各要素には、同じ値を持つ他の要素に対するその要素の位置が示されます。Array(T) 例 1
Query
Response
例 2
Query
Response
例 3
Query
Response
例 4
Query
Response

arrayExcept

導入バージョン: v25.9.0 元の順序を保持したまま、except に含まれない source の要素からなる配列を返します。 この関数は、2 つの配列に対して差集合演算を行います。source の各要素について、その要素が except に存在するかどうかを確認し (厳密比較を使用) 、存在しない場合は結果に含めます。 この演算では、次の性質が維持されます。
  1. source の要素の順序は保持されます
  2. source 内の重複要素は、except に存在しない場合は保持されます
  3. NULL は個別の値として扱われます
構文
引数
  • source — フィルタリング対象の要素を含むソース配列です。 Array(T)
  • except — 結果から除外する要素を含む配列です。 Array(T)
戻り値 except に含まれない source の要素を含む、入力配列と同じ型の配列を返します。 Array(T) 基本
Query
Response
with_nulls1
Query
Response
with_nulls2
Query
Response
文字列
Query
Response

arrayExists

導入バージョン: v1.1.0 ソース配列内に 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 つの要素に対してラムダ関数が true を返す場合は 1、それ以外の場合は 0 を返します。UInt8 使用例
Query
Response

arrayFill

導入バージョン: v20.1.0 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
2つの配列を使った例
Query
Response

arrayFilter

導入バージョン: v1.1.0 ラムダ関数が true を返すソース配列内の要素のみを含む配列を返します。 構文
引数
  • func(x[, y1, ..., yN]) — ソース配列 (x) と条件配列 (y) の各要素に対して処理を行うラムダ関数。ラムダ関数
  • source_arr — 処理対象のソース配列。Array(T)
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 ソース配列の部分集合 Array(T) を返します 例 1
Query
Response
例 2
Query
Response

arrayFirst

導入バージョン: v1.1.0 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

導入バージョン: v1.1.0 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

導入バージョン: v1.1.0 func(x[, y1, y2, ... yN]) が true を返すソース配列内の最初の要素を返します。該当する要素がない場合は NULL を返します。 構文
引数
  • func(x[, y1, ..., yN]) — ソース配列 (x) および条件配列 (y) の要素に対して適用されるラムダ関数。Lambda function
  • source_arr — 処理するソース配列。Array(T)
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 func が true となるソース配列の最初の要素を返します。該当する要素がない場合は NULL を返します。 使用例
Query
Response
該当なし
Query
Response

arrayFlatten

導入バージョン: v20.1.0 配列の配列をフラット化して、1つの配列に変換します。 関数:
  • ネストされた配列の深さにかかわらず適用できます。
  • すでにフラットな配列は変更しません。
フラット化された配列には、すべてのソース配列の要素が含まれます。 構文
別名: flatten 引数 戻り値 多次元配列をフラット化した Array(T) を返します 使用例
Query
Response

arrayFold

導入バージョン: v23.10.0 1 つ以上の同じ長さの配列にラムダ関数を適用し、その結果をアキュムレータに格納します。 構文
引数
  • λ(x, x1 [, x2, x3, ... xN]) — ラムダ関数 λ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN])。ここで Faccx の配列要素に適用される演算で、その結果の acc が繰り返し再利用されます。ラムダ関数
  • arr1 [, arr2, arr3, ... arrN] — 演算の対象となる N 個の配列。Array(T)
  • acc — ラムダ関数の戻り値と同じ型のアキュムレータ値。
戻り値 最終的な acc の値を返します。 使用例
Query
Response
フィボナッチ数列
Query
Response
複数のArrayを使用する例
Query
Response

arrayIntersect

導入バージョン: v1.1.0 複数の配列を受け取り、すべてのソース配列に共通して含まれる要素からなる配列を返します。結果には一意の値のみが含まれます。 構文
引数
  • arrN — 新しい配列の作成元となる N 個の配列。 Array(T).
戻り値 N 個すべての配列に共通して含まれる重複のない要素からなる配列を返します Array(T) 使用例
Query
Response

arrayJaccardIndex

導入バージョン: v23.7.0 2つの配列の ジャカード係数 を返します。 構文
引数 戻り値 arr_xarr_y のジャカード係数を返します。Float64 使用例
Query
Response

arrayJoin

導入バージョン: v1.1.0 arrayJoin 関数は、配列を含む1つの行を受け取り、それを展開して、配列の各要素ごとに1行ずつ、複数の行を生成します。 これは、同じ行の中で入力値を出力値に対応付ける ClickHouse の通常の関数や、 複数の行のグループを1つの要約行に「圧縮」または「集約」する集約関数 (GROUP BY とともに使用した場合は、要約行内の単一の値) とは対照的です。 この関数が適用されたカラムを除き、他のカラムの値はそのままコピーされます。 適用されたカラムの値は、対応する配列の要素の値に置き換えられます。 構文
別名: unnest 引数 戻り値 arr を展開して得られる行の集合を返します。 基本的な使い方
Query
Response
arrayJoin はクエリのすべての句に影響します
Query
Response
複数の arrayJoin 関数を使用する
Query
Response
最適化によって予期しない結果が生じる場合
Query
Response
ARRAY JOIN構文を使う
Query
Response
Tupleの使用
Query
Response

arrayLast

導入バージョン: v1.1.0 ラムダ 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

導入バージョン: v1.1.0 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

arrayLastOrNull

導入バージョン: v1.1.0 ラムダ 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

導入バージョン: v25.4.0 2つの配列のレーベンシュタイン距離を計算します。 構文
引数
  • from — 1 つ目の配列。Array(T)。 - to — 2 つ目の配列。Array(T)
戻り値 1 つ目と 2 つ目の配列の間のレーベンシュタイン距離。Float64 使用例
Query
Response

arrayLevenshteinDistanceWeighted

導入バージョン: v25.4.0 各要素にカスタムの重みを設定した、2つのArrayのレーベンシュタイン距離を計算します。 Arrayとその重みの要素数は一致している必要があります。 構文
引数 戻り値 各要素にカスタム重みを設定した、第1および第2の配列間のレーベンシュタイン距離。Float64 使用例
Query
Response

arrayMap

導入バージョン: v1.1.0 元の配列の各要素にラムダ関数を適用して得られる配列を返します。 構文
引数
  • func — ソース配列 (x) と条件配列 (y) の要素に適用されるラムダ関数です。Lambda function
  • arr — 処理対象の配列を N 個指定します。Array(T)
戻り値 ラムダ関数の結果からなる配列を返します。Array(T) 使用例
Query
Response
異なる配列の要素からタプルを作成する
Query
Response

arrayMax

導入バージョン: v21.1.0 ソース配列内の最大の要素を返します。 ラムダ関数 func が指定されている場合は、その評価結果の最大値を返します。 構文
引数
  • func(x[, y1, ..., yN]) — 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数です。ラムダ関数
  • source_arr — 処理対象のソース配列です。Array(T)
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
戻り値 ソース配列内の最大要素を返します。ラムダ関数が指定されている場合は、ラムダ関数の結果の最大要素を返します。 基本例
Query
Response
ラムダ関数の使用例
Query
Response

arrayMin

導入バージョン: v21.1.0 ソース配列内の最小要素を返します。 ラムダ関数 func が指定されている場合は、ラムダ関数の結果のうち最小の要素を返します。 構文
引数
  • func(x[, y1, ..., yN]) — オプション。ソース配列 (x) および条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数
  • source_arr — 処理対象のソース配列。Array(T)
  • cond1_arr, ... — オプション。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 ソース配列内の最小要素を返します。ラムダ関数が指定されている場合は、その結果の最小要素を返します。 基本例
Query
Response
ラムダ関数での使用
Query
Response

arrayNormalizedGini

導入バージョン: v25.1.0 正規化ジニ係数を計算します。 構文
引数 戻り値 予測値のジニ係数、正規化値のジニ係数、および正規化ジニ係数 (= 前者2つのジニ係数の比) を含むタプル。Tuple(Float64, Float64, Float64) 使用例
Query
Response

arrayPartialReverseSort

導入バージョン: v23.2.0 この関数は arrayReverseSort と同じですが、limit 引数を追加することで部分ソートを行えます。
ソート済みの要素のみを残すには、arrayResize を使用します。
構文
引数
  • f(arr[, arr1, ... ,arrN]) — 配列 x の要素に適用するラムダ関数。ラムダ関数
  • limit — どこまでソートするかを示す索引値。(U)Int*
  • arr — ソート対象の配列。Array(T)
  • arr1, ... ,arrNf が複数の引数を受け取る場合に指定する、追加の N 個の配列。Array(T)
戻り値 元の配列と同じサイズの配列を返します。この配列では、範囲 [1..limit] の要素が 降順にソートされます。残りの要素 (limit..N] の順序は未規定です。 simple_int
Query
Response
simple_string
Query
Response
retain_sorted
Query
Response
lambda_simple
Query
Response
lambda_complex
Query
Response

arrayPartialShuffle

導入バージョン: v23.2.0 元の配列と同じサイズの配列を返します。この配列では、[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。Array(T) no_limit1
Query
Response
no_limit2
Query
Response
random_seed
Query
Response
explicit_seed
Query
Response
マテリアライズ
Query
Response

arrayPartialSort

導入バージョン: v23.2.0 この関数は arraySort と同じですが、部分ソートを行うための limit 引数が追加されています。
ソート済みの要素だけを残すには、arrayResize を使用します。
構文
引数
  • f(arr[, arr1, ... ,arrN]) — 配列 x の要素に適用するラムダ関数です。ラムダ関数
  • limit — ソートを行う範囲の終端を表す索引値です。(U)Int*
  • arr — ソートする Array です。Array(T)
  • arr1, ... ,arrNf が複数の引数を受け取る場合に使用する、追加の N 個の配列です。Array(T)
戻り値 元の配列と同じサイズの配列を返します。この配列では、範囲 [1..limit] の要素が 昇順にソートされます。残りの要素 (limit..N] の順序は未定です。 simple_int
Query
Response
simple_string
Query
Response
retain_sorted
Query
Response
lambda_simple
Query
Response
lambda_complex
Query
Response

arrayPopBack

導入バージョン: v1.1.0 配列の最後の要素を削除します。 構文
引数
  • arr — 末尾の要素を削除する配列です。Array(T)
戻り値 arr と同じ配列から末尾の要素を取り除いた配列を返します。Array(T) 使用例
Query
Response

arrayPopFront

導入バージョン: v1.1.0 配列の先頭の要素を取り除きます。 構文
引数
  • arr — 先頭の要素を削除する配列です。Array(T)
戻り値 arr と同じですが、arr の先頭要素を除いた配列を返します Array(T) 使用例
Query
Response

arrayProduct

導入バージョン: v21.1.0 ソース配列内の要素の積を返します。 ラムダ関数 func が指定されている場合は、そのラムダ関数の結果の各要素の積を返します。 構文
引数
  • func(x[, y1, ..., yN]) — 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数
  • source_arr — 処理対象のソース配列。Array(T)
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 ソース配列の要素の積、または指定されている場合はラムダ関数の結果要素の積を返します。Float64 基本例
Query
Response
ラムダ関数での使用
Query
Response

arrayPushBack

導入バージョン: v1.1.0 配列の末尾に要素を 1 つ追加します。 構文
引数
  • arr — 末尾に値 x を追加する対象の配列です。Array(T)
  • x
  • 配列の末尾に追加する単一の値です。Array(T)
  • 数値の配列に追加できるのは数値のみで、文字列の配列に追加できるのは文字列のみです。
  • 数値を追加する場合、ClickHouse は配列のデータ型に合わせて x の型を自動的に設定します。
  • NULL を指定できます。この関数は配列に NULL 要素を追加し、配列要素の型は Nullable に変換されます。
ClickHouse のデータ型について詳しくは、Data types を参照してください。
戻り値 arr と同じ内容で、配列の末尾に追加の値 x が加わった配列を返します。Array(T) 使用例
Query
Response

arrayPushFront

導入バージョン: v1.1.0 配列の先頭に要素を 1 つ追加します。 構文
Arguments
  • arr — 末尾に値 x を追加する対象の配列です。Array(T)。 - x
  • 配列の先頭に追加する単一の値です。Array(T)
  • 数値の配列には数値のみ、文字列の配列には文字列のみを追加できます。
  • 数値を追加する場合、ClickHouse は配列のデータ型に合わせて x の型を自動的に設定します。
  • NULL も指定できます。この関数は配列に NULL 要素を追加し、配列要素の型は Nullable に変換されます。
ClickHouse のデータ型の詳細については、Data types を参照してください。
戻り値 arr と同一ですが、配列の先頭に追加の値 x が含まれる配列を返します Array(T) Examples Usage example
Query
Response

arrayROCAUC

導入バージョン: v20.4.0 receiver operating characteristic (ROC) 曲線下面積を計算します。 ROC 曲線は、すべてのしきい値にわたって、y 軸に True Positive Rate (TPR) 、x 軸に False Positive Rate (FPR) をプロットして作成されます。 返される値は 0 から 1 の範囲で、値が大きいほどモデルの性能が高いことを示します。 ROC AUC (単に AUC とも呼ばれます) は、機械学習における概念です。 詳細については、こちらこちら、およびこちらを参照してください。 構文
別名: arrayAUC 引数
  • scores — 予測モデルが出力するスコア。Array((U)Int*) または Array(Float*)
  • labels — サンプルのラベル。通常、正例には 1、負例には 0 を使用します。Array((U)Int*) または Enum
  • scale — 任意。正規化された面積を返すかどうかを指定します。false の場合は、代わりに TP (真陽性) x FP (偽陽性) 曲線の下の面積を返します。デフォルト値: true。Bool
  • partial_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_scoresarr_labels は、スコアのある区間に対応するデータセット全体の 1 つのパーティションのみを含む必要があります。 データセットは連続したパーティションに分割する必要があり、各パーティションには、スコアが特定の範囲に収まるデータの部分集合が含まれている必要があります。 例:
  • あるパーティションには、範囲 [0, 0.5) のすべてのスコアを含めることができます。
  • 別のパーティションには、範囲 [0.5, 1.0] のスコアを含めることができます。
戻り値 ROC (receiver operating characteristic) 曲線の下の面積を返します。Float64 使用例
Query
Response

arrayRandomSample

導入バージョン: v23.10.0 入力配列から、ランダムに選択した samples 個の要素からなる部分集合を返します。samples が入力配列のサイズを超える場合、サンプル数は配列のサイズに制限されます。つまり、配列のすべての要素が返されますが、その順序は保証されません。この関数は、フラットな配列とネストされた配列の両方を扱えます。 構文
引数
  • arr — 要素をサンプリングする対象の入力配列、または多次元配列です。Array(T)
  • samples — ランダムサンプルに含める要素数です。(U)Int*
戻り値 入力配列からランダムに抽出した要素のサンプルを含む配列 Array(T) 使用例
Query
Response
多次元配列を使用する
Query
Response

arrayReduce

導入バージョン: v1.1.0 配列要素に集約関数を適用し、その結果を返します。 集約関数の名前は、'max''sum' のようにシングルクォートで囲んだ文字列として渡します。 パラメトリック集約関数を使用する場合、パラメータは 'uniqUpTo(6)' のように関数名の後のかっこ内で指定します。 構文
引数
  • agg_f — 定数で指定する集約関数の名前。String
  • arr1[, arr2, ... , arrN]agg_f の引数に対応する N 個の配列。Array(T)
戻り値 集約関数の結果を返します 使用例
Query
Response
複数の引数を使用する集約関数の例
Query
Response
パラメトリック集約関数の例
Query
Response

arrayReduceInRanges

導入バージョン: v20.4.0 指定した範囲内の配列要素に集約関数を適用し、各範囲に対応する結果を格納した配列を返します。 この関数は、arrayReduce(agg_func, arraySlice(arr1, index, length), ...) を複数回実行した場合と同じ結果を返します。 構文
引数
  • agg_f — 使用する aggregate function の名前。String
  • ranges — 集約する範囲。集約を開始する索引 i と、集約対象の範囲 r を含む (i, r) 形式の Tuple の配列。Array(T) または Tuple(T)
  • arr1[, arr2, ... ,arrN] — aggregate function に渡す N 個の配列。Array(T)
戻り値 指定した範囲に対する aggregate function の結果を含む配列を返します。Array(T) 使用例
Query
Response

arrayRemove

導入バージョン: v25.11.0 配列から、指定した値と等しい要素をすべて削除します。 NULL は等しいものとして扱われます。 構文
別名: array_remove 引数
  • arr — Array(T) - elem — T
戻り値 ソース配列のサブセット Array(T) を返します 例 1
Query
Response
例 2
Query
Response

arrayResize

導入バージョン: v1.1.0 配列の長さを変更します。 構文
引数
  • arr — リサイズ対象の Array。Array(T)
  • size — -Array の新しい長さ。 size が Array の元のサイズより小さい場合、Array は右側から切り詰められます。 size が Array の初期サイズより大きい場合、Array は右側に extender の値、または Array 要素のデータ型のデフォルト値で拡張されます。
  • extender — Array の拡張に使用する値。NULL を指定できます。
戻り値 長さが size の Array。Array(T) 例 1
Query
Response
例 2
Query
Response

arrayReverse

導入バージョン: v1.1.0 指定された配列の要素の並び順を逆にします。
関数 reverse(arr) も同じ機能を持ち、Array に加えて他のデータ型にも対応しています。
構文
引数 戻り値 元の配列と同じサイズで、要素が逆順に並んだ配列を返します。Array(T) 使用例
Query
Response

arrayReverseFill

導入バージョン: v20.1.0 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
2つの配列を使った例
Query
Response

arrayReverseSort

導入バージョン: v1.1.0 配列の要素を降順にソートします。 関数 f が指定されている場合、指定した配列は、その配列要素に関数を適用した結果に基づいてソートされた後、反転されます。 f が複数の引数を受け取る場合、arrayReverseSort 関数には複数の配列が渡され、これらは func の各引数に対応します。 ソート対象の配列に -InfNULLNaN、または Inf が含まれている場合、これらは次の順序でソートされます。
  1. -Inf
  2. Inf
  3. NaN
  4. NULL
arrayReverseSort高階関数です。 構文
引数
  • f(y1[, y2 ... yN]) — 配列 x の要素に適用するラムダ関数。 - arr — ソートする配列。 Array(T) - arr1, ..., arrN — 任意。f が複数の引数を受け取る場合に指定する、追加の N 個の配列。
戻り値 ラムダ関数が指定されていない場合は、配列 x を降順にソートして返します。指定されている場合は、 指定されたラムダ関数のロジックに従って配列をソートし、その後で反転した配列を返します。 Array(T) 例 1
Query
Response
例 2
Query
Response

arrayReverseSplit

導入バージョン: v20.1.0 ソース配列を複数の配列に分割します。func(x[, y1, ..., yN]) が 0 以外の値を返した場合、その要素の右側で配列が分割されます。最後の要素の後では分割されません。 構文
引数
  • func(x[, y1, ..., yN]) — ソース配列 (x) および条件配列 (y) の要素に対して処理を行うラムダ関数です。Lambda function
  • source_arr — 処理対象のソース配列です。Lambda function
  • [, cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列です。Array(T)
戻り値 配列の配列を返します。Array(Array(T)) 使用例
Query
Response

arrayRotateLeft

導入バージョン: v23.8.0 配列を、指定した要素数だけ左に回転します。n の値が負の場合は、回転量の絶対値だけ右に回転するものとして扱われます。 構文
引数 戻り値 指定した要素数だけ左に回転された配列 Array(T) 使用例
Query
Response
n が負の値の場合
Query
Response

arrayRotateRight

導入バージョン: v23.8.0 配列を、指定した要素数だけ右に回転します。n が負の値の場合は、その絶対値の分だけ左に回転するものとして扱われます。 構文
引数
  • arr — 要素をローテーションする配列。Array(T)。 - n — ローテーションする要素の数。(U)Int8/16/32/64
戻り値 指定した数だけ右にローテーションされた配列 Array(T) 使用例
Query
Response
n が負の値の場合
Query
Response

arrayShiftLeft

導入バージョン: v23.8.0 指定した要素数だけ配列を左にシフトします。 新しい要素は、指定された引数または配列の要素型のデフォルト値で埋められます。 要素数が負の場合、配列は右にシフトされます。 構文
引数
  • arr — 要素をシフトする配列。Array(T)。 - n — シフトする要素数。(U)Int8/16/32/64。 - default — 任意。新たに追加される要素のデフォルト値。
戻り値 指定した数の要素だけ左にシフトされた配列 Array(T) 使用例
Query
Response
n が負の値の場合
Query
Response
デフォルト値を使用する
Query
Response

arrayShiftRight

導入バージョン: v23.8.0 配列を指定した要素数だけ右にシフトします。 新しい要素は、指定した引数または配列の要素型のデフォルト値で埋められます。 要素数が負の場合、配列は左にシフトされます。 構文
引数
  • arr — 要素をシフトする対象の配列です。Array(T)
  • n — シフトする要素の数です。(U)Int8/16/32/64
  • default — 省略可。新しく作成される要素のデフォルト値です。
戻り値 指定した要素数だけ右にシフトされた配列です。Array(T) 使用例
Query
Response
n が負の値の場合
Query
Response
デフォルト値を使用する
Query
Response

arrayShingles

導入バージョン: v24.1.0 シングルの配列 (文字列に対するN-gramに類似) を生成します。つまり、入力配列から指定した長さの連続した部分配列を生成します。 構文
引数
  • arr — shingle の配列を生成する対象の Array。Array(T)
  • l — 各 shingle の長さ。(U)Int*
戻り値 生成された shingle の配列 Array(T) 使用例
Query
Response

arrayShuffle

導入バージョン: v23.2.0 元の配列と同じサイズで、要素がシャッフルされた順序で格納された配列を返します。 要素は、考えられるすべての順列が同じ確率で現れるように並べ替えられます。
この関数では定数はマテリアライズされません。
構文
引数
  • arr — シャッフルする配列です。Array(T)
  • seed (optional) — 省略可能です。乱数生成に使用するシード値です。指定しない場合は、ランダムな値が使用されます。(U)Int*
戻り値 要素をシャッフルした Array Array(T) seed を指定しない例 (結果は不安定)
Query
Response
seed なしの例 (安定した結果)
Query
Response

arraySimilarity

導入バージョン: v25.4.0 重み付きレーベンシュタイン距離に基づいて、2 つの配列の類似度を 0 から 1 の範囲で計算します。 構文
引数 戻り値 重み付きレーベンシュタイン距離に基づく、2つの配列間の 0 から 1 の類似度を返します Float64 使用例
Query
Response

arraySlice

導入バージョン: v1.1.0 配列の一部を返します。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

導入バージョン: v1.1.0 指定された配列の要素を昇順にソートします。 ラムダ関数 f が指定されている場合、ソート順は 配列の各要素にラムダを適用した結果によって決まります。 ラムダが複数の引数を受け取る場合、arraySort 関数には複数の 配列が渡され、それぞれが f の引数に対応します。 ソート対象の配列に -InfNULLNaN、または Inf が含まれている場合、これらは次の順序でソートされます。
  1. -Inf
  2. Inf
  3. NaN
  4. NULL
arraySort高階関数です。 構文
引数
  • f(y1[, y2 ... yN]) — 配列 x の要素に適用するラムダ関数。 - arr — ソートする配列。 Array(T) - arr1, ..., arrN — 任意。f が複数の引数を受け取る場合に指定する、追加の N 個の配列。
戻り値 ラムダ関数が指定されていない場合は、配列 arr を昇順にソートして返します。 指定されている場合は、指定されたラムダ関数のロジックに従ってソートされた配列を返します。 Array(T). 例 1
Query
Response
例 2
Query
Response
例 3
Query
Response

arraySplit

導入バージョン: v20.1.0 ソース配列を複数の配列に分割します。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

導入バージョン: v21.1.0 ソース配列内の要素の合計を返します。 ラムダ関数 func が指定されている場合は、ラムダ関数の結果の合計を返します。 構文
引数
  • func(x[, y1, ..., yN]) — 任意。ソース配列 (x) と条件配列 (y) の要素に対して処理を行うラムダ関数。ラムダ関数
  • source_arr — 処理対象のソース配列。Array(T)
  • , cond1_arr, ... , condN_arr] — 任意。ラムダ関数に追加の引数を渡す N 個の条件配列。Array(T)
戻り値 ソース配列の要素の合計、または指定した場合はラムダ関数の結果要素の合計を返します。 基本例
Query
Response
ラムダ関数を使った使用方法
Query
Response

arraySymmetricDifference

導入バージョン: v25.4.0 複数の配列を受け取り、すべてのソース配列に共通して存在するわけではない要素からなる配列を返します。結果には一意の値のみが含まれます。
2 つを超える集合の対称差は、数学的には 奇数個の入力集合に現れるすべての入力要素からなる集合として定義されます。 一方、関数 arraySymmetricDifference は、すべての入力集合に共通して存在するわけではない入力要素の集合を単純に返します。
構文
引数
  • arrN — 新しい配列の作成元となる N 個の配列。Array(T)
戻り値 すべてのソース配列に共通して含まれない、重複のない要素からなる配列を返します Array(T) 使用例
Query
Response

arrayTopK

導入バージョン: v26.6.0 入力配列から大きい要素を上位 K 個取り出し、降順にソートされた配列を返します。 ラムダ関数 f が指定されている場合、各要素に f を適用した結果に基づいて要素が比較されます。 f が複数の引数を受け取る場合は、追加の配列が arrayTopK に渡され、それらの要素が f の引数に対応します。 NULL 値はスキップされ、結果には含まれません。結果のサイズは最大 K で、 入力配列に K 個未満の非 NULL 要素しか含まれていない場合は、それより小さくなることがあります。 結果の要素型は、入力要素型に対応する非 Nullable 型です。 arrayTopK高階関数 です。 代わりに、最も小さい要素を下位 K 個返す arrayBottomK も参照してください。 構文
引数
  • f(arr[, arr1, ... ,arrN]) — 省略可能。各要素のソートキーを計算するためのラムダ関数。ラムダ関数
  • K — 返す最大要素数。(U)Int8/16/32/64
  • arr — 配列。Array(T)
  • arr1, ... ,arrNf が複数の引数を受け取る場合の、追加の N 個の配列。Array(T)
戻り値 arr のうち値が大きい要素 (またはラムダ関数の結果が大きい要素) を最大 K 個まで、降順にソートして返します。 NULL はスキップされます。返される配列の要素型は、入力が Nullable(T) 型の場合でも T です。 simple_int
Query
Response
skip_nulls
Query
Response
fewer_than_k
Query
Response
lambda_simple
Query
Response
lambda_multi
Query
Response

arrayTranspose

導入バージョン: v26.4.0 二次元配列を転置します。 すべての内部配列は同じ長さである必要があります。 構文
引数
  • arr — 転置する二次元配列。すべての内部配列は同じ長さである必要があります。Array(Array(T))
戻り値 結果の要素 [i][j] が入力の要素 [j][i] に等しくなる、転置後の二次元配列。Array(Array(T)) 正方行列
Query
Response
非正方行列
Query
Response
文字列型の要素
Query
Response

arrayUnion

導入バージョン: v24.10.0 複数の配列を受け取り、いずれかのソース配列に含まれるすべての要素から成る配列を返します。結果には一意の値のみが含まれます。 構文
引数
  • arrN — 新しい配列の作成元となる N 個の配列。Array(T)
戻り値 ソース配列内の一意な要素からなる配列を返します Array(T) 使用例
Query
Response

arrayUniq

導入バージョン: v1.1.0 引数が 1 つの場合は、配列内の異なる要素の数を数えます。 引数が複数の場合は、複数の配列の対応する位置にある要素から構成される、異なるタプルの数を数えます。 たとえば、SELECT arrayUniq([1,2], [3,4], [5,6]) は次のタプルを形成します。
  • 位置 1: (1,3,5)
  • 位置 2: (2,4,6)
その後、一意なタプルの数を数えます。この場合は 2 です。 渡すすべての配列は同じ長さである必要があります。
配列内の一意な要素の一覧を取得するには、arrayReduce('groupUniqArray', arr) を使用できます。
構文
引数
  • arr1 — 一意な要素数を数える対象の Array。 Array(T)
  • [, arr2, ..., arrN] — 任意。複数の Array の対応する位置にある要素から構成される、一意な Tuple の数を数えるための追加の Array。 Array(T)
戻り値 引数が 1 つの場合は、一意な 要素数を返します。引数が複数ある場合は、各 Array の対応する位置にある要素から構成される一意な Tuple の数を返します。 UInt32 単一引数
Query
Response
複数の引数
Query
Response

arrayWithConstant

導入バージョン: v20.1.0 定数 x で埋めた長さ length の配列を作成します。 構文
引数
  • length — 配列の要素数。(U)Int*
  • x — 配列の N 個の要素の値。型は任意です。
戻り値 xN 個の要素で構成される Array を返します。Array(T) 使用例
Query
Response

arrayZip

導入バージョン: v20.1.0 複数の配列を 1 つの配列に結合します。結果の配列には、ソース配列の対応する要素が、引数に記載された順序でタプルにまとめられて格納されます。 構文
引数
  • arr1, arr2, ... , arrN — 1 つの配列に結合するための N 個の配列。Array(T)
戻り値 ソース配列の要素をタプルにまとめた配列を返します。タプル内のデータ型は入力配列の型と同じで、配列が渡された順序と同じ順に並びます Array(T) 使用例
Query
Response

arrayZipUnaligned

導入バージョン: v20.1.0 複数の配列を 1 つの配列に結合します。長さの異なる配列同士でも結合できます。結果の配列には、ソース配列の対応する要素が、引数に列挙された順序でタプルとしてまとめられて格納されます。 構文
引数
  • arr1, arr2, ..., arrN — 1つの配列に結合する N 個の配列。Array(T)
戻り値 ソース配列の要素をタプルとしてまとめた配列を返します。タプル内のデータ型は入力配列の型と同じで、配列を渡した順序もそのまま保持されます。Array(T) または Tuple(T1, T2, ...) 使用例
Query
Response

countEqual

導入バージョン: v1.1.0 配列内で x に等しい要素の数を返します。arrayCount(elem -> elem = x, arr) と同等です。 NULL 要素は独立した値として扱われます。 構文
引数
  • arr — 検索対象の Array。Array(T)
  • x — 配列内で個数を数える値。任意の型。
戻り値 配列内で x に等しい要素の数を返します。UInt64 使用例
Query
Response

empty

導入バージョン: v1.1.0 入力された配列が空かどうかを判定します。 配列に要素が1つも含まれていない場合、その配列は空と見なされます。
optimize_functions_to_subcolumns 設定を有効にすることで最適化できます。optimize_functions_to_subcolumns = 1 の場合、この関数は配列カラム全体を読み取って処理する代わりに、size0 サブカラムのみを読み取ります。クエリ SELECT empty(arr) FROM TABLE;SELECT arr.size0 = 0 FROM TABLE; に変換されます。
この関数は String や UUID に対しても使用できます。 構文
引数 戻り値 空のArrayの場合は 1、空でないArrayの場合は 0 を返します。UInt8 使用例
Query
Response

emptyArrayDate

導入バージョン: v1.1.0 Date 型の空の配列を返します 構文
引数
  • なし。
戻り値 空のDate配列。Array(T) 使用例
Query
Response

emptyArrayDateTime

導入バージョン: v1.1.0 空のDateTime配列を返します 構文
引数
  • なし。
戻り値 空の DateTime の配列。Array(T) 使用例
Query
Response

emptyArrayFloat32

導入バージョン: v1.1.0 空の Float32 型の配列を返します 構文
引数
  • なし。
戻り値 空の Float32 の配列。Array(T) 使用例
Query
Response

emptyArrayFloat64

導入バージョン: v1.1.0 空のFloat64 Arrayを返します 構文
引数
  • なし。
戻り値 空の Float64 配列。Array(T) 使用例
Query
Response

emptyArrayInt16

導入バージョン: v1.1.0 空の Int16 型の配列を返します 構文
引数
  • なし。
戻り値 空の Int16 配列。Array(T) 使用例
Query
Response

emptyArrayInt32

導入バージョン: v1.1.0 空の Int32 Array を返します 構文
引数
  • なし
戻り値 空の Int32 配列。Array(T) 使用例
Query
Response

emptyArrayInt64

導入バージョン: v1.1.0 空の Int64 Array を返します 構文
引数
  • なし
戻り値 空の Int64 の配列。Array(T) 使用例
Query
Response

emptyArrayInt8

導入バージョン: v1.1.0 空の Int8 Array を返します 構文
引数
  • なし。
戻り値 空のInt8配列。Array(T) 使用例
Query
Response

emptyArrayString

導入バージョン: v1.1.0 空のString配列を返します 構文
引数
  • なし。
戻り値 空の String 配列。Array(T) 使用例
Query
Response

emptyArrayToSingle

導入バージョン: v1.1.0 空の配列を受け取り、デフォルト値に等しい1要素の配列を返します。 構文
引数 戻り値 Array のデフォルト型の値を 1 つ持つ配列。Array(T) 基本例
Query
Response

emptyArrayUInt16

導入バージョン: v1.1.0 空の UInt16 の配列を返します 構文
引数
  • なし。
戻り値 UInt16 の空の配列。 Array(T) 使用例
Query
Response

emptyArrayUInt32

導入バージョン: v1.1.0 空の UInt32 Array を返します 構文
引数
  • なし。
戻り値 空の UInt32 の配列。Array(T) 使用例
Query
Response

emptyArrayUInt64

導入バージョン: v1.1.0 空の UInt64 配列を返します 構文
引数
  • なし。
戻り値 空の UInt64 の配列です。Array(T) 使用例
Query
Response

emptyArrayUInt8

導入バージョン: v1.1.0 空の UInt8 配列を返します 構文
引数
  • なし。
戻り値 空の UInt8 の配列。Array(T) 使用例
Query
Response

has

導入バージョン: v1.1.0 Array に指定した要素、Map に指定したキー、または JSONオブジェクト に指定したパスが含まれているかどうかを返します。 JSON では、ドット記法 (例: ‘a.b.c’) を使ってネストされたパスを指定できます。 最初の引数が定数 Array で、2 番目の引数がカラムまたは式である場合、has(constant_array, column)column IN (constant_array) と同様に動作し、最適化のために主キーやデータスキッピング索引を利用できます。たとえば、idPRIMARY KEY の一部であれば、has([1, 10, 100], id) は主キー索引を活用できます。 この最適化は、カラムが単調関数でラップされている場合にも適用されます (例: has([...], toDate(ts))) 。 構文
引数
  • haystack — ソース配列、Map、または JSON。Array または Map または JSON
  • needle — 検索する値 (配列内の要素、Map のキー、または JSON のパス文字列) 。
戻り値 haystack に指定した needle が含まれている場合は 1、含まれていない場合は 0 を返します。UInt8 Array の基本的な使い方
Query
Response
Array が見つかりません
Query
Response
Map の基本的な使い方
Query
Response
JSON パス
Query
Response

hasAll

導入バージョン: v1.1.0 一方の配列がもう一方の配列の部分集合であるかどうかを判定します。
  • 空の配列は、任意の配列の部分集合です。
  • Null は値として処理されます。
  • どちらの配列でも、値の順序は関係ありません。
構文
引数
  • set — 要素の集合を持つ、任意の型の Array。Array(T)
  • subsetset と共通のスーパータイプを持ち、set の部分集合かどうかを判定する対象の要素を含む、任意の型の Array。Array(T)
戻り値
  • 1setsubset のすべての要素が含まれる場合。
  • 0 — それ以外の場合。
setsubset の要素が共通のスーパータイプを持たない場合は、NO_COMMON_TYPE 例外が発生します。 空の配列
Query
Response
NULL 値を含む Array
Query
Response
異なる型の値を含む Array
Query
Response
String 型の値を含む配列
Query
Response
共通の型を持たない Array
Query
Response
ArrayのArray
Query
Response

hasAny

導入バージョン: v1.1.0 2 つの配列に共通する要素があるかどうかを判定します。
  • Null は値として処理されます。
  • どちらの配列でも、値の順序は問いません。
構文
引数
  • arr_x — 要素の集合を持つ任意の型の Array。Array(T)
  • arr_y — Array arr_x と共通スーパータイプを持つ任意の型の Array。Array(T)
戻り値
  • 1arr_xarr_y に共通する要素が少なくとも 1 つある場合。
  • 0 — それ以外の場合。
2 つの Array の要素同士に共通スーパータイプを持たないものがある場合は、NO_COMMON_TYPE 例外が発生します。 一方の Array が空の場合
Query
Response
NULL 値を含む Array
Query
Response
異なる型の値を含む配列
Query
Response
共通の型がないArray
Query
Response
ArrayのArray
Query
Response

hasSubstr

導入バージョン: v20.6.0 array2 のすべての要素が、array1 にまったく同じ順序で現れるかどうかを確認します。 したがって、この関数は array1 = プレフィックス + array2 + 接尾辞 の場合にのみ 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 を返します。
  • 両方の配列における値の順序は重要です。
2 つの配列の要素同士に共通の上位型がない場合は、NO_COMMON_TYPE 例外を発生させます。 構文
引数
  • arr1 — 要素の集合からなる任意の型の Array。Array(T)
  • arr2 — 要素の集合からなる任意の型の Array。Array(T)
戻り値 配列 arr1 が配列 arr2 を含む場合は 1、それ以外の場合は 0 を返します。UInt8 両方の配列が空の場合
Query
Response
NULL 値を含む Array
Query
Response
異なる型の値を含むArray
Query
Response
文字列を含む配列
Query
Response
順序付けが有効なArray
Query
Response
順序が不正な Array
Query
Response
Arrayの配列
Query
Response
共通の型を持たない配列
Query
Response

indexOf

導入バージョン: v1.1.0 配列内に値 ‘x’ を持つ最初の要素がある場合、その位置 (1 から始まる) を返します。 配列に検索対象の値が含まれていない場合、関数は 0 を返します。 NULL に設定された要素も通常の値として扱われます。 構文
引数
  • arrx を検索する対象の配列。Array(T)
  • xarr 内で最初に一致する要素の値。この値に対応する索引を返します。UInt64
戻り値 arrx が存在する場合は、最初の x の索引 (1 から始まる番号) を返します。存在しない場合は 0 を返します。UInt64 基本的な例
Query
Response
NULL を含む Array
Query
Response

indexOfAssumeSorted

導入バージョン: v24.12.0 配列内に値 ‘x’ を持つ要素がある場合、その最初の要素の位置 (1 から始まる) を返します。 配列に検索対象の値が含まれていない場合、この関数は 0 を返します。
indexOf 関数とは異なり、この関数は配列が昇順に ソートされていることを前提としています。配列がソートされていない場合、結果は未定義です。
構文
引数
  • arr — 検索対象のソート済み配列。Array(T)
  • x — ソート済みの arr 内で最初に一致した要素のうち、その索引を返す対象となる値。UInt64
戻り値 arr 内に x が存在する場合は、最初の x の索引 (1 から始まる) を返します。存在しない場合は、0 を返します。UInt64 基本例
Query
Response

kql_array_sort_asc

導入バージョン: v23.10.0 1 つ以上の配列を昇順にソートします。最初の配列がソートされ、後続の配列はそのソート順に合わせて並べ替えられます。NULL 値は末尾に配置されます。これは KQL (Kusto Query Language) 互換関数です。 構文
引数
  • array1 — ソート対象の配列です。Array(T)
  • array2 — 任意。array1 のソート順に合わせて並べ替える追加の配列です。Array(T)
  • nulls_last — 任意。NULL を最後に配置するかどうかを示すブール値です。デフォルトは true です。UInt8
戻り値 昇順にソートされた配列のタプルを返します。Tuple(Array, ...) 基本的な使い方
Query
Response

kql_array_sort_desc

導入バージョン: v23.10.0 1 つ以上の配列を降順にソートします。最初の配列がソートされ、以降の配列はその並び順に合わせて並べ替えられます。NULL 値は末尾に配置されます。これは KQL (Kusto Query Language) との互換性のための関数です。 構文
引数
  • array1 — ソート対象の配列です。Array(T)
  • array2array1 のソート順に合わせて並べ替える、任意の追加配列です。Array(T)
  • nulls_last — null を末尾に配置するかどうかを示す任意のブール値です。デフォルトは true です。UInt8
戻り値 降順にソートされた配列のタプルを返します。Tuple(Array, ...) 基本的な使い方
Query
Response

length

導入バージョン: v1.1.0 文字列または配列の長さを計算します。
  • String または FixedString 引数の場合: 文字列のバイト数を計算します。
  • Array 引数の場合: 配列の要素数を計算します。
  • FixedString 引数に適用した場合、この関数は定数式になります。
文字列のバイト数は、Unicode の “code points” の数とも、 Unicode の “grapheme clusters” の数 (通常「文字」と呼ばれるもの) とも、表示上の文字幅とも一致しない点に注意してください。 文字列に ASCII の NULL バイトを含めることは可能で、それらもカウントされます。 構文
別名: CARDINALITY, OCTET_LENGTH 引数
  • x — バイト数 (String/FixedString の場合) または要素数 (Array の場合) を計算する値。String または FixedString または Array(T)
戻り値 String/FixedString x のバイト数、または配列 x の要素数を返します。UInt64 Stringの例
Query
Response
Arrayの例
Query
Response
constexprの例
Query
Response
Unicode の例
Query
Response
ascii_vs_utf8 の例
Query
Response

notEmpty

導入バージョン: v1.1.0 入力された Array が空でないかどうかを確認します。 Array は、少なくとも 1 つの要素を含んでいれば空ではないと見なされます。
optimize_functions_to_subcolumns 設定を有効にすると、この関数を最適化できます。optimize_functions_to_subcolumns = 1 の場合、この関数は Array 全体のカラムを読み取って処理する代わりに、size0 サブカラムだけを読み取ります。クエリ SELECT notEmpty(arr) FROM tableSELECT arr.size0 != 0 FROM TABLE に変換されます。
この関数は String や UUID に対しても使用できます。 構文
引数 戻り値 空でない配列の場合は 1、空の配列の場合は 0 を返します。UInt8 使用例
Query
Response

range

導入バージョン: v1.1.0 start から end - 1 までの数値を、step 刻みで配列として返します。 サポートされている型は次のとおりです。
  • UInt8/16/32/64
  • Int8/16/32/64]
  • すべての引数 startendstep は、上記のサポート対象の型のいずれかである必要があります。返される配列の要素型は、引数の共通の上位型になります。
  • 関数が、設定 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

導入バージョン: v1.1.0 単一の値を含む配列を作成します。 構文
引数
  • x — 結果の配列を値 x で埋めるための値。Any
  • arr — 配列。Array(T)
戻り値 arr と同じ長さで、各要素が値 x の配列を返します。Array(T) 使用例
Query
Response

reverse

導入バージョン: v1.1.0 入力 Array の要素の並び、または入力文字列内の文字の並びを逆順にします。 構文
引数
  • arr | str — ソース配列または文字列。Array(T) または String
戻り値 要素または文字の並び順を逆にした配列または文字列を返します。 配列を逆順にする
Query
Response
文字列の反転
Query
Response

距離関数

サポートされているすべての関数については、距離関数のドキュメントを参照してください。
最終更新日 2026年7月2日