メインコンテンツまでスキップ
メインコンテンツまでスキップ

タプル関数

tuple

複数のカラムをグループ化することを可能にする関数です。
カラム C1, C2, ... の型が T1, T2, ... の場合、名前が一意で引用符のない識別子として扱える場合には、これらのカラムを含む名前付きの Tuple(C1 T1, C2 T2, ...) 型のタプルを返します。そうでない場合は Tuple(T1, T2, ...) が返されます。関数を実行するコストはありません。
タプルは通常、IN 演算子の引数の中間値として使用されるか、ラムダ関数の正式なパラメータのリストを作成するために使用されます。タプルはテーブルに書き込むことはできません。

この関数は演算子 (x, y, ...) を実装しています。

構文

tupleElement

タプルからカラムを取得することを可能にする関数です。

2番目の引数が数値 index の場合、それはカラムのインデックスで、1から始まります。2番目の引数が文字列 name の場合、それは要素の名前を表します。また、インデックスが範囲外または名前に対する要素が存在しない場合にデフォルト値を返すための3番目のオプション引数を提供することもできます。2番目と3番目の引数が提供される場合、定数でなければなりません。関数を実行するコストはありません。

この関数は演算子 x.indexx.name を実装しています。

構文

untuple

呼び出し位置での tuple 要素の構文的置換を行います。

結果カラムの名前は実装に依存し、変更される可能性があります。 untuple の後に特定のカラム名を仮定しないでください。

構文

クエリの結果としてカラムをスキップするには、 EXCEPT 表現を使用できます。

引数

  • xtuple 関数、カラム、または要素のタプル。 Tuple

返り値

  • なし。

入力テーブル:

Tuple 型カラムを untuple 関数パラメータとして使用する例:

クエリ:

結果:

EXCEPT 表現を使用する例:

クエリ:

結果:

関連情報

tupleHammingDistance

同じサイズの2つのタプル間の ハミング距離 を返します。

構文

引数

  • tuple1 — 1つ目のタプル。 Tuple
  • tuple2 — 2つ目のタプル。 Tuple

タプルは要素の同じ型である必要があります。

返り値

  • ハミング距離。
注記

結果の型は、算術関数と同様に、入力タプル内の要素数に基づいて計算されます。

クエリ:

結果:

MinHash 関数と組み合わせてセミ重複文字列の検出に使用できます:

結果:

tupleToNameValuePairs

名前付きタプルを (name, value) ペアの配列に変換します。
Tuple(a T, b T, ..., c T) の場合、Array(Tuple(String, T), ...) を返し、Strings はタプルの名前付きフィールドを表し、T はそれらの名前に関連付けられた値です。すべてのタプル内の値は同じ型である必要があります。

構文

引数

  • tuple — 名前付きタプル。値の任意の型の Tuple

返り値

クエリ:

結果:

この関数を使用してカラムを行に変換することもできます:

結果:

単純なタプルを関数に渡すと、ClickHouse は値のインデックスを名前として使用します:

結果:

tupleNames

タプルをカラム名の配列に変換します。
Tuple(a T, b T, ...) の形のタプルの場合、タプルの名前付きカラムを表す文字列の配列を返します。タプルの要素に明示的な名前がない場合、そのインデックスがカラム名として使用されます。

構文

引数

  • tuple — 名前付きタプル。 Tuple で、任意の型の値を持つ。

返り値

  • 文字列の配列。

型: Array(Tuple(String, ...))。

クエリ:

結果:

単純なタプルを関数に渡すと、ClickHouse はカラムのインデックスを名前として使用します:

結果:

tuplePlus

同じサイズの2つのタプルの対応する値の合計を計算します。

構文

エイリアス: vectorSum.

引数

  • tuple1 — 1つ目のタプル。 Tuple
  • tuple2 — 2つ目のタプル。 Tuple

返り値

  • 合計のタプル。 Tuple

クエリ:

結果:

tupleMinus

同じサイズの2つのタプルの対応する値の引き算を計算します。

構文

エイリアス: vectorDifference.

引数

  • tuple1 — 1つ目のタプル。 Tuple
  • tuple2 — 2つ目のタプル。 Tuple

返り値

  • 引き算の結果のタプル。 Tuple

クエリ:

結果:

tupleMultiply

同じサイズの2つのタプルの対応する値の乗算を計算します。

構文

引数

  • tuple1 — 1つ目のタプル。 Tuple
  • tuple2 — 2つ目のタプル。 Tuple

返り値

  • 乗算の結果のタプル。 Tuple

クエリ:

結果:

tupleDivide

同じサイズの2つのタプルの対応する値の除算を計算します。ゼロでの除算は inf を返します。

構文

引数

  • tuple1 — 1つ目のタプル。 Tuple
  • tuple2 — 2つ目のタプル。 Tuple

返り値

  • 除算の結果のタプル。 Tuple

クエリ:

結果:

tupleNegate

タプルの値の否定を計算します。

構文

引数

返り値

  • 否定の結果のタプル。 Tuple

クエリ:

結果:

tupleMultiplyByNumber

すべての値を数値で乗算したタプルを返します。

構文

引数

返り値

  • 乗算された値のタプル。 Tuple

クエリ:

結果:

tupleDivideByNumber

すべての値を数値で除算したタプルを返します。ゼロでの除算は inf を返します。

構文

引数

返り値

  • 除算された値のタプル。 Tuple

クエリ:

結果:

tupleConcat

引数として渡されたタプルを結合します。

引数

  • tuplesTuple 型の任意の数の引数。

tupleIntDiv

分子のタプルと分母のタプルの整数除算を行い、商のタプルを返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • tuple_div: 除数の値のタプル。 Tuple の数値型。

返り値

  • tuple_numtuple_div の商のタプル。 Tuple の整数値。

実装の詳細

  • tuple_num または tuple_div に非整数値が含まれている場合、各非整数の分子または除数の近くの整数に丸めて計算されます。
  • ゼロでの除算に対してエラーが発生します。

クエリ:

結果:

クエリ:

結果:

tupleIntDivOrZero

tupleIntDiv と同様に、分子のタプルと分母のタプルの整数除算を行い、商のタプルを返します。0の除数に対してはエラーをスローする代わりに、商として0を返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • tuple_div: 除数の値のタプル。 Tuple の数値型。

返り値

  • tuple_numtuple_div の商のタプル。 Tuple の整数値。
  • 除数が0の場合、その商は0として返されます。

実装の詳細

  • tuple_num または tuple_div に非整数値が含まれている場合、tupleIntDiv と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。

クエリ:

結果:

tupleIntDivByNumber

分子のタプルを指定された除数で割り、商のタプルを返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • div: 除数の値。 Numeric 型。

返り値

  • tuple_numdiv の商のタプル。 Tuple の整数値。

実装の詳細

  • tuple_num または div に非整数値が含まれている場合、tupleIntDiv と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。
  • ゼロでの除算に対してエラーが発生します。

クエリ:

結果:

クエリ:

結果:

tupleIntDivOrZeroByNumber

tupleIntDivByNumber と同様に、分子のタプルを指定された除数で割り、商のタプルを返します。0の除数に対してはエラーをスローする代わりに、商として0を返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • div: 除数の値。 Numeric 型。

返り値

  • tuple_numdiv の商のタプル。 Tuple の整数値。
  • 除数が0の場合、その商は0として返されます。

実装の詳細

  • tuple_num または div に非整数値が含まれている場合、tupleIntDivByNumber と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。

クエリ:

結果:

クエリ:

結果:

tupleModulo

2つのタプルの除算操作の余りのタプルを返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • tuple_div: 除数の値のタプル。 Tuple の数値型。

返り値

  • tuple_numtuple_mod の除算の余りのタプル。 Tuple の非ゼロ整数値。
  • ゼロでの除算に対してエラーが発生します。

クエリ:

結果:

tupleModuloByNumber

分子のタプルと指定された除数の除算操作の余りのタプルを返します。

構文

引数

  • tuple_num: 分子の値のタプル。 Tuple の数値型。
  • div: 除数の値。 Numeric 型。

返り値

  • tuple_numdiv の除算の余りのタプル。 Tuple の非ゼロ整数値。
  • ゼロでの除算に対してエラーが発生します。

クエリ:

結果:

flattenTuple

ネストされた名前付き input タプルからフラットな output タプルを返します。
output タプルの要素は、元の input タプルからのパスです。たとえば: Tuple(a Int, Tuple(b Int, c Int)) -> Tuple(a Int, b Int, c Int)flattenTuple は、型 Object からすべてのパスを別々のカラムとして選択するために使用できます。

構文

引数

  • input: フラット化するネストされた名前付きタプル。 Tuple

返り値

  • 元の input からのパスを持つ output タプル。 Tuple

クエリ:

結果:

Distance functions

すべてのサポートされている関数は、距離関数のドキュメントに記載されています。