ClickHouse/docs/ja/sql_reference/functions/array_functions.md
2020-04-04 12:15:31 +03:00

33 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 46 配列の操作

配列を操作するための関数

空の配列の場合は1、空でない配列の場合は0を返します。 結果の型はuint8です。 この関数は文字列に対しても機能します。

notEmpty

空の配列の場合は0、空でない配列の場合は1を返します。 結果の型はuint8です。 この関数は文字列に対しても機能します。

長さ

配列内の項目の数を返します。 結果の型はuint64です。 この関数は文字列に対しても機能します。

emptyArrayUInt8,emptyArrayUInt16,emptyArrayUInt32,emptyArrayUInt64

emptyArrayInt8,emptyArrayInt16,emptyArrayInt32,emptyArrayInt64

emptyArrayFloat32,emptyArrayFloat64

emptyArrayDate,emptyArrayDateTime

constellation name(optional)

ゼロ引数を受け取り、適切な型の空の配列を返します。

emptyArrayToSingle

空の配列を受け取り、デフォルト値と等しいワンエレメント配列を返します。

範囲(終了)、範囲(開始、終了[、ステップ])

開始から終了までの数字の配列を返します-1ステップごとに。 これは、 start デフォルトは0です。 これは、 step デフォルトは1です。 それはpythonicのように動作します range. しかし、違いは、すべての引数の型が UInt ナンバーズ 場合によっては、データブロック内に100,000,000要素を超える長さの配列が作成された場合、例外がスローされます。

array(x1, …), operator [x1, …]

関数の引数から配列を作成します。 引数は定数でなければならず、最小の共通型を持つ型を持つ必要があります。 なぜなら、それ以外の場合は、どのタイプの配列を作成するかは明確ではないからです。 つまり、この関数を使用して空の配列を作成することはできません(これを行うには、 emptyArray* 上記の関数)。 を返します。 Array(T) タイプの結果、ここで T 渡された引数のうち最小の共通型です。

arrayConcat

引数として渡される配列を結合します。

arrayConcat(arrays)

パラメータ

  • arrays Arbitrary number of arguments of 配列 タイプ。 例えば
SELECT arrayConcat([1, 2], [3, 4], [5, 6]) AS res
┌─res───────────┐
│ [1,2,3,4,5,6] │
└───────────────┘

arrayElement(arr,n),演算子arr[n]

インデックスを持つ要素を取得する n 配列から arr. n 任意の整数型でなければなりません。 インデックス配列の開始からです。 負の索引がサポートされます。 この場合、最後から番号が付けられた対応する要素を選択します。 例えば, arr[-1] 配列の最後の項目です。

インデックスが配列の境界の外にある場合、いくつかのデフォルト値数値の場合は0、文字列の場合は空の文字列などを返します。、非定数配列と定数インデックス0の場合を除いてこの場合はエラーが発生します Array indices are 1-based).

has(arr,elem)

この arr 配列には elem 要素。 要素が配列にない場合は0、ない場合は1を返します。

NULL 値として処理されます。

SELECT has([1, 2, NULL], NULL)
┌─has([1, 2, NULL], NULL)─┐
│                       1 │
└─────────────────────────┘

hasAll

ある配列が別の配列のサブセットかどうかを調べます。

hasAll(set, subset)

パラメータ

  • set Array of any type with a set of elements.
  • subset Array of any type with elements that should be tested to be a subset of set.

戻り値

  • 1,もし set からのすべての要素を含みます subset.
  • 0 そうでなければ

特有の性質

  • 空の配列は、任意の配列のサブセットです。
  • Null 値として処理されます。
  • 両方の配列の値の順序は関係ありません。

SELECT hasAll([], []) 戻り値1.

SELECT hasAll([1, Null], [Null]) 戻り値1.

SELECT hasAll([1.0, 2, 3, 4], [1, 3]) 戻り値1.

SELECT hasAll(['a', 'b'], ['a']) 戻り値1.

SELECT hasAll([1], ['a']) 0を返します。

SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [3, 5]]) 0を返します。

hasAny

るかどうかを判二つの配列が互いの交差点にある。

hasAny(array1, array2)

パラメータ

  • array1 Array of any type with a set of elements.
  • array2 Array of any type with a set of elements.

戻り値

  • 1,もし array1array2 少なくとも同様の要素を持っている。
  • 0 そうでなければ

特有の性質

  • Null 値として処理されます。
  • 両方の配列の値の順序は関係ありません。

SELECT hasAny([1], []) を返します 0.

SELECT hasAny([Null], [Null, 1]) を返します 1.

SELECT hasAny([-128, 1., 512], [1]) を返します 1.

SELECT hasAny([[1, 2], [3, 4]], ['a', 'c']) を返します 0.

SELECT hasAll([[1, 2], [3, 4]], [[1, 2], [1, 2]]) を返します 1.

インデクサー(arr,x)

最初のインデックスを返します x 要素配列内にある場合は1から開始、そうでない場合は0。

例えば:

SELECT indexOf([1, 3, NULL, NULL], NULL)
┌─indexOf([1, 3, NULL, NULL], NULL)─┐
│                                 3 │
└───────────────────────────────────┘

に設定された要素 NULL 通常の値として扱われます。

countEqual(arr,x)

配列内のxと等しい要素の数を返します。arraycount(elem->elem=x,arr)と等価です。

NULL 要素は個別の値として処理されます。

例えば:

SELECT countEqual([1, 2, NULL, NULL], NULL)
┌─countEqual([1, 2, NULL, NULL], NULL)─┐
│                                    2 │
└──────────────────────────────────────┘

arrayEnumerate(arr)

Returns the array [1, 2, 3, …, length (arr) ]

この関数は通常、array joinと共に使用されます。 この計数かけま配列に適用後の配列。 例えば:

SELECT
    count() AS Reaches,
    countIf(num = 1) AS Hits
FROM test.hits
ARRAY JOIN
    GoalsReached,
    arrayEnumerate(GoalsReached) AS num
WHERE CounterID = 160656
LIMIT 10
┌─Reaches─┬──Hits─┐
│   95606 │ 31406 │
└─────────┴───────┘

この例では、reachesは変換の数配列結合を適用した後に受け取った文字列であり、hitsはページビューの数配列結合の前の文字列です。 この特定のケースでは、同じ結果をより簡単な方法で得ることができます:

SELECT
    sum(length(GoalsReached)) AS Reaches,
    count() AS Hits
FROM test.hits
WHERE (CounterID = 160656) AND notEmpty(GoalsReached)
┌─Reaches─┬──Hits─┐
│   95606 │ 31406 │
└─────────┴───────┘

この関数は、高階関数でも使用できます。 たとえば、これを使用して、条件に一致する要素の配列インデックスを取得できます。

arrayEnumerateUniq(arr, …)

ソース配列と同じサイズの配列を返し、各要素に対して同じ値を持つ要素間の位置を示します。 例えば:arrayenumerateuniq([10, 20, 10, 30]) = [1, 1, 2, 1].

この関数は、配列要素の配列の結合と集約を使用する場合に便利です。 例えば:

SELECT
    Goals.ID AS GoalID,
    sum(Sign) AS Reaches,
    sumIf(Sign, num = 1) AS Visits
FROM test.visits
ARRAY JOIN
    Goals,
    arrayEnumerateUniq(Goals.ID) AS num
WHERE CounterID = 160656
GROUP BY GoalID
ORDER BY Reaches DESC
LIMIT 10
┌──GoalID─┬─Reaches─┬─Visits─┐
│   53225 │    3214 │   1097 │
│ 2825062 │    3188 │   1097 │
│   56600 │    2803 │    488 │
│ 1989037 │    2401 │    365 │
│ 2830064 │    2396 │    910 │
│ 1113562 │    2372 │    373 │
│ 3270895 │    2262 │    812 │
│ 1084657 │    2262 │    345 │
│   56599 │    2260 │    799 │
│ 3271094 │    2256 │    812 │
└─────────┴─────────┴────────┘

この例では、各ゴールidには、コンバージョン数ゴールネストされたデータ構造の各要素は、達成されたゴールであり、コンバージョンと呼ばれますとセッション 配列の結合がなければ、セッション数をsum(sign)としてカウントします。 しかし、この特定のケースでは、行はネストされたgoals構造体で乗算されたので、この後に各セッションをカウントするために、arrayenumerateuniqの値に条件を適用しまgoals.id関数。

ArrayEnumerateUniq関数は、引数と同じサイズの複数の配列を取ることができます。 この場合、すべての配列の同じ位置にある要素のタプルに対して一意性が考慮されます。

SELECT arrayEnumerateUniq([1, 1, 1, 2, 2, 2], [1, 1, 2, 1, 1, 2]) AS res
┌─res───────────┐
│ [1,2,1,1,2,1] │
└───────────────┘

これは、ネストされたデータ構造で配列結合を使用し、この構造内の複数の要素間でさらに集約する場合に必要です。

arrayPopBack

配列から最後の項目を削除します。

arrayPopBack(array)

パラメータ

  • array Array.

例えば

SELECT arrayPopBack([1, 2, 3]) AS res
┌─res───┐
│ [1,2] │
└───────┘

arrayPopFront

配列から最初の項目を削除します。

arrayPopFront(array)

パラメータ

  • array Array.

例えば

SELECT arrayPopFront([1, 2, 3]) AS res
┌─res───┐
│ [2,3] │
└───────┘

arrayPushBack

配列の末尾に一つの項目を追加します。

arrayPushBack(array, single_value)

パラメータ

  • array Array.
  • single_value A single value. Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. When adding numbers, ClickHouse automatically sets the single_value 配列のデータ型の型。 ClickHouseのデータ型の詳細については、以下を参照してください “データ型”. できる。 NULL. この関数は、 NULL 配列への要素、および配列要素の型に変換します Nullable.

例えば

SELECT arrayPushBack(['a'], 'b') AS res
┌─res───────┐
│ ['a','b'] │
└───────────┘

arrayPushFront

配列の先頭に一つの要素を追加します。

arrayPushFront(array, single_value)

パラメータ

  • array Array.
  • single_value A single value. Only numbers can be added to an array with numbers, and only strings can be added to an array of strings. When adding numbers, ClickHouse automatically sets the single_value 配列のデータ型の型。 ClickHouseのデータ型の詳細については、以下を参照してください “データ型”. できる。 NULL. この関数は、 NULL 配列への要素、および配列要素の型に変換します Nullable.

例えば

SELECT arrayPushFront(['b'], 'a') AS res
┌─res───────┐
│ ['a','b'] │
└───────────┘

arrayResize

配列の長さを変更します。

arrayResize(array, size[, extender])

パラメータ:

  • array — Array.
  • size — Required length of the array.
    • もし size 配列の元のサイズより小さい場合、配列は右から切り捨てられます。
  • もし size は配列の初期サイズより大きく、配列は次のように右に拡張されます extender 配列項目のデータ型の値または既定値。
  • extender — Value for extending an array. Can be NULL.

戻り値:

長さの配列 size.

通話の例

SELECT arrayResize([1], 3)
┌─arrayResize([1], 3)─┐
│ [1,0,0]             │
└─────────────────────┘
SELECT arrayResize([1], 3, NULL)
┌─arrayResize([1], 3, NULL)─┐
│ [1,NULL,NULL]             │
└───────────────────────────┘

arraySlice

配列のスライスを返します。

arraySlice(array, offset[, length])

パラメータ

  • array Array of data.
  • offset Indent from the edge of the array. A positive value indicates an offset on the left, and a negative value is an indent on the right. Numbering of the array items begins with 1.
  • length -必要なスライスの長さ。 負の値を指定すると、関数は開いているスライスを返します [offset, array_length - length). 値を省略すると、関数はスライスを返します [offset, the_end_of_array].

例えば

SELECT arraySlice([1, 2, NULL, 4, 5], 2, 3) AS res
┌─res────────┐
│ [2,NULL,4] │
└────────────┘

に設定された配列要素 NULL 通常の値として扱われます。

arraySort([func,] arr, …)

の要素をソートします arr 昇順の配列。 この func の結果によって決定される。 func 関数は、配列の要素に適用されます。 もし func 複数の引数を受け取る。 arraySort 関数はいくつかの配列を渡されます。 func に対応します。 詳しい例は終わりにの示されています arraySort 説明。

整数値のソート例:

SELECT arraySort([1, 3, 3, 0]);
┌─arraySort([1, 3, 3, 0])─┐
│ [0,1,3,3]               │
└─────────────────────────┘

文字列値のソートの例:

SELECT arraySort(['hello', 'world', '!']);
┌─arraySort(['hello', 'world', '!'])─┐
│ ['!','hello','world']              │
└────────────────────────────────────┘

次の並べ替え順序を考えてみましょう。 NULL, NaNInf 値:

SELECT arraySort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf]);
┌─arraySort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf])─┐
│ [-inf,-4,1,2,3,inf,nan,nan,NULL,NULL]                     │
└───────────────────────────────────────────────────────────┘
  • -Inf 値は配列の最初のものです。
  • NULL 値は配列の最後です。
  • NaN 値は直前です NULL.
  • Inf 値は直前です NaN.

それに注意 arraySort高階関数. 最初の引数としてラムダ関数を渡すことができます。 この場合、並べ替え順序は、配列の要素に適用されるlambda関数の結果によって決まります。

次の例を考えてみましょう:

SELECT arraySort((x) -> -x, [1, 2, 3]) as res;
┌─res─────┐
│ [3,2,1] │
└─────────┘

For each element of the source array, the lambda function returns the sorting key, that is, [1 > -1, 2 > -2, 3 > -3]. Since the arraySort 関数はキーを昇順にソートし、結果は[3,2,1]になります。 このように、 (x) > -x ラムダ関数は、 降順 ソートで。

Lambda関数は複数の引数を受け取ることができます。 この場合、次のものを渡す必要があります arraySort 関数lambda関数の引数が対応する同じ長さのいくつかの配列。 結果の配列は最初の入力配列の要素で構成され、次の入力配列の要素はソートキーを指定します。 例えば:

SELECT arraySort((x, y) -> y, ['hello', 'world'], [2, 1]) as res;
┌─res────────────────┐
│ ['world', 'hello'] │
└────────────────────┘

ここでは、第二の配列([2、1])に渡される要素は、ソース配列から対応する要素のソートキーを定義します ([hello, world])、それは, [hello > 2, world > 1]. Since the lambda function doesn't use x ソース配列の実際の値は、結果の順序には影響しません。 だから, hello 結果の二番目の要素になります。 world 最初になります。

その他の例を以下に示す。

SELECT arraySort((x, y) -> y, [0, 1, 2], ['c', 'b', 'a']) as res;
┌─res─────┐
│ [2,1,0] │
└─────────┘
SELECT arraySort((x, y) -> -y, [0, 1, 2], [1, 2, 3]) as res;
┌─res─────┐
│ [2,1,0] │
└─────────┘

!!! note "メモ" 効率を分類することを改善するため シュワルツ語変換 使用される。

arrayReverseSort([func,] arr, …)

の要素をソートします arr 降順での配列。 この func 機能は指定されます, arr の結果に従ってソートされます。 func 関数は、配列の要素に適用され、その後、ソートされた配列が反転されます。 もし func 複数の引数を受け取る。 arrayReverseSort 関数はいくつかの配列を渡されます。 func に対応します。 詳しい例は終わりにの示されています arrayReverseSort 説明。

整数値のソート例:

SELECT arrayReverseSort([1, 3, 3, 0]);
┌─arrayReverseSort([1, 3, 3, 0])─┐
│ [3,3,1,0]                      │
└────────────────────────────────┘

文字列値のソートの例:

SELECT arrayReverseSort(['hello', 'world', '!']);
┌─arrayReverseSort(['hello', 'world', '!'])─┐
│ ['world','hello','!']                     │
└───────────────────────────────────────────┘

次の並べ替え順序を考えてみましょう。 NULL, NaNInf 値:

SELECT arrayReverseSort([1, nan, 2, NULL, 3, nan, -4, NULL, inf, -inf]) as res;
┌─res───────────────────────────────────┐
│ [inf,3,2,1,-4,-inf,nan,nan,NULL,NULL] │
└───────────────────────────────────────┘
  • Inf 値は配列の最初のものです。
  • NULL 値は配列の最後です。
  • NaN 値は直前です NULL.
  • -Inf 値は直前です NaN.

それに注意しなさい arrayReverseSort高階関数. 最初の引数としてラムダ関数を渡すことができます。 例を以下に示す。

SELECT arrayReverseSort((x) -> -x, [1, 2, 3]) as res;
┌─res─────┐
│ [1,2,3] │
└─────────┘

配列は次の方法でソートされます:

  1. 最初に、ソース配列([1、2、3])は、配列の要素に適用されたラムダ関数の結果に従ってソートされます。 結果は配列[3,2,1]です。
  2. 前のステップで取得された配列は、逆になります。 したがって、最終的な結果は[1,2,3]です。

Lambda関数は複数の引数を受け取ることができます。 この場合、次のものを渡す必要があります arrayReverseSort 関数lambda関数の引数が対応する同じ長さのいくつかの配列。 結果の配列は最初の入力配列の要素で構成され、次の入力配列の要素はソートキーを指定します。 例えば:

SELECT arrayReverseSort((x, y) -> y, ['hello', 'world'], [2, 1]) as res;
┌─res───────────────┐
│ ['hello','world'] │
└───────────────────┘

この例では、配列は次のようにソートされています:

  1. 最初に、ソース配列 ([hello, world])は、配列の要素に適用されたラムダ関数の結果に従ってソートされます。 第二の配列([2、1])に渡される要素は、ソース配列から対応する要素のソートキーを定義します。 結果は配列です [world, hello].
  2. 前のステップでソートされた配列は、逆になります。 したがって、最終的な結果は [hello, world].

その他の例を以下に示す。

SELECT arrayReverseSort((x, y) -> y, [4, 3, 5], ['a', 'b', 'c']) AS res;
┌─res─────┐
│ [5,3,4] │
└─────────┘
SELECT arrayReverseSort((x, y) -> -y, [4, 3, 5], [1, 2, 3]) AS res;
┌─res─────┐
│ [4,3,5] │
└─────────┘

arrayUniq(arr, …)

一つの引数が渡された場合、それは、配列内の異なる要素の数をカウントします。 複数の引数が渡されると、複数の配列内の対応する位置にある要素の異なるタプルの数がカウントされます。

配列内の一意の項目のリストを取得する場合は、arrayreduceを使用できます(groupUniqArray、arr

arrayJoin(arr)

特殊関数。 セクションを見る “ArrayJoin function”.

arrayDifference

隣接する配列要素間の差を計算します。 最初の要素が0になる配列を返します。 a[1] - a[0], etc. The type of elements in the resulting array is determined by the type inference rules for subtraction (e.g. UInt8 - UInt8 = Int16).

構文

arrayDifference(array)

パラメータ

戻り値

隣接する要素間の差異の配列を返します。

タイプ: UInt*, Int*, フロート*.

例えば

クエリ:

SELECT arrayDifference([1, 2, 3, 4])

結果:

┌─arrayDifference([1, 2, 3, 4])─┐
│ [0,1,1,1]                     │
└───────────────────────────────┘

結果の型int64によるオーバーフローの例:

クエリ:

SELECT arrayDifference([0, 10000000000000000000])

結果:

┌─arrayDifference([0, 10000000000000000000])─┐
│ [0,-8446744073709551616]                   │
└────────────────────────────────────────────┘

arrayDistinct

配列をとり、distinct要素のみを含む配列を返します。

構文

arrayDistinct(array)

パラメータ

戻り値

Distinct要素を含む配列を返します。

例えば

クエリ:

SELECT arrayDistinct([1, 2, 2, 3, 1])

結果:

┌─arrayDistinct([1, 2, 2, 3, 1])─┐
│ [1,2,3]                        │
└────────────────────────────────┘

arrayEnumerateDense(arr)

ソース配列と同じサイズの配列を返し、各要素がソース配列のどこに最初に現れるかを示します。

例えば:

SELECT arrayEnumerateDense([10, 20, 10, 30])
┌─arrayEnumerateDense([10, 20, 10, 30])─┐
│ [1,2,1,3]                             │
└───────────────────────────────────────┘

arrayIntersect(arr)

複数の配列を取り、すべてのソース配列に存在する要素を持つ配列を返します。 結果の配列内の要素の順序は、最初の配列と同じです。

例えば:

SELECT
    arrayIntersect([1, 2], [1, 3], [2, 3]) AS no_intersect,
    arrayIntersect([1, 2], [1, 3], [1, 4]) AS intersect
┌─no_intersect─┬─intersect─┐
│ []           │ [1]       │
└──────────────┴───────────┘

arrayReduce

集計関数を配列要素に適用し、その結果を返します。 集約関数の名前は、一重引quotesで文字列として渡されます 'max', 'sum'. パラメトリック集約関数を使用する場合、パラメータは関数名の後に括弧で囲んで示されます 'uniqUpTo(6)'.

構文

arrayReduce(agg_func, arr1, arr2, ..., arrN)

パラメータ

  • agg_func — The name of an aggregate function which should be a constant 文字列.
  • arr — Any number of 配列 集計関数のパラメーターとして列を入力します。

戻り値

例えば

SELECT arrayReduce('max', [1, 2, 3])
┌─arrayReduce('max', [1, 2, 3])─┐
│                             3 │
└───────────────────────────────┘

集計関数が複数の引数を取る場合、この関数は同じサイズの複数の配列に適用する必要があります。

SELECT arrayReduce('maxIf', [3, 5], [1, 0])
┌─arrayReduce('maxIf', [3, 5], [1, 0])─┐
│                                    3 │
└──────────────────────────────────────┘

パラメトリック集計関数の使用例:

SELECT arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
┌─arrayReduce('uniqUpTo(3)', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])─┐
│                                                           4 │
└─────────────────────────────────────────────────────────────┘

arrayreduceinrangesname

指定された範囲の配列要素に集計関数を適用し、各範囲に対応する結果を含む配列を返します。 この関数は、同じ結果を複数として返します arrayReduce(agg_func, arraySlice(arr1, index, length), ...).

構文

arrayReduceInRanges(agg_func, ranges, arr1, arr2, ..., arrN)

パラメータ

  • agg_func — The name of an aggregate function which should be a constant 文字列.
  • ranges — The ranges to aggretate which should be an 配列タプル 各範囲のインデックスと長さを含む。
  • arr — Any number of 配列 集計関数のパラメーターとして列を入力します。

戻り値

例えば

SELECT arrayReduceInRanges(
    'sum',
    [(1, 5), (2, 3), (3, 4), (4, 4)],
    [1000000, 200000, 30000, 4000, 500, 60, 7]
) AS res
┌─res─────────────────────────┐
│ [1234500,234000,34560,4567] │
└─────────────────────────────┘

arrayReverse(arr)

要素を含む元の配列と同じサイズの配列を逆の順序で返します。

例えば:

SELECT arrayReverse([1, 2, 3])
┌─arrayReverse([1, 2, 3])─┐
│ [3,2,1]                 │
└─────────────────────────┘

リバース(arr)

の同義語 “arrayReverse”

arrayFlatten

配列の配列をフラット配列に変換します。

機能:

  • ネストされた配列の任意の深さに適用されます。
  • 既にフラットな配列は変更されません。

の平坦化された配列を含むすべての要素をすべてソース配列.

構文

flatten(array_of_arrays)

エイリアス: flatten.

パラメータ

  • array_of_arrays配列 配列の。 例えば, [[1,2,3], [4,5]].

SELECT flatten([[[1]], [[2], [3]]])
┌─flatten(array(array([1]), array([2], [3])))─┐
│ [1,2,3]                                     │
└─────────────────────────────────────────────┘

arrayCompact

配列から連続した重複する要素を削除します。 結果値の順序は、ソース配列の順序によって決まります。

構文

arrayCompact(arr)

パラメータ

arr — The 配列 検査する。

戻り値

重複のない配列。

タイプ: Array.

例えば

クエリ:

SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, 3])

結果:

┌─arrayCompact([1, 1, nan, nan, 2, 3, 3, 3])─┐
│ [1,nan,nan,2,3]                            │
└────────────────────────────────────────────┘

arrayZip

Combine multiple Array type columns into one Array[Tuple(…)] column

構文

arrayZip(arr1, arr2, ..., arrN)

パラメータ

arr — Any number of 配列 結合する列を入力します。

戻り値

The result of Array[Tuple(…)] type after the combination of these arrays

例えば

クエリ:

SELECT arrayZip(['a', 'b', 'c'], ['d', 'e', 'f']);

結果:

┌─arrayZip(['a', 'b', 'c'], ['d', 'e', 'f'])─┐
│ [('a','d'),('b','e'),('c','f')]            │
└────────────────────────────────────────────┘

arrayAUC

計算auc機械学習の概念である曲線の下の面積は、詳細を参照してくださいhttps://en.wikipedia.org/wiki/receiver_operating_characteristic#area_under_the_curve).

構文

arrayAUC(arr_scores, arr_labels)

パラメータ

  • arr_scores — scores prediction model gives.
  • arr_labels — labels of samples, usually 1 for positive sample and 0 for negtive sample.

戻り値 Float64型のAUC値を返します。

例えば クエリ:

select arrayAUC([0.1, 0.4, 0.35, 0.8], [0, 0, 1, 1])

結果:

┌─arrayAUC([0.1, 0.4, 0.35, 0.8], [0, 0, 1, 1])─┐
│                                          0.75 │
└────────────────────────────────────────---──┘

元の記事