タプル関数
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.index
と x.name
を実装しています。
構文
untuple
呼び出し位置での tuple 要素の構文的置換を行います。
結果カラムの名前は実装に依存し、変更される可能性があります。 untuple
の後に特定のカラム名を仮定しないでください。
構文
クエリの結果としてカラムをスキップするには、 EXCEPT
表現を使用できます。
引数
x
—tuple
関数、カラム、または要素のタプル。 Tuple。
返り値
- なし。
例
入力テーブル:
Tuple
型カラムを untuple
関数パラメータとして使用する例:
クエリ:
結果:
EXCEPT
表現を使用する例:
クエリ:
結果:
関連情報
tupleHammingDistance
同じサイズの2つのタプル間の ハミング距離 を返します。
構文
引数
タプルは要素の同じ型である必要があります。
返り値
- ハミング距離。
結果の型は、算術関数と同様に、入力タプル内の要素数に基づいて計算されます。
例
クエリ:
結果:
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 で、任意の型の値を持つ。
返り値
- 文字列の配列。
例
クエリ:
結果:
単純なタプルを関数に渡すと、ClickHouse はカラムのインデックスを名前として使用します:
結果:
tuplePlus
同じサイズの2つのタプルの対応する値の合計を計算します。
構文
エイリアス: vectorSum
.
引数
返り値
- 合計のタプル。 Tuple。
例
クエリ:
結果:
tupleMinus
同じサイズの2つのタプルの対応する値の引き算を計算します。
構文
エイリアス: vectorDifference
.
引数
返り値
- 引き算の結果のタプル。 Tuple。
例
クエリ:
結果:
tupleMultiply
同じサイズの2つのタプルの対応する値の乗算を計算します。
構文
引数
返り値
- 乗算の結果のタプル。 Tuple。
例
クエリ:
結果:
tupleDivide
同じサイズの2つのタプルの対応する値の除算を計算します。ゼロでの除算は inf
を返します。
構文
引数
返り値
- 除算の結果のタプル。 Tuple。
例
クエリ:
結果:
tupleNegate
タプルの値の否定を計算します。
構文
引数
tuple
— Tuple。
返り値
- 否定の結果のタプル。 Tuple。
例
クエリ:
結果:
tupleMultiplyByNumber
すべての値を数値で乗算したタプルを返します。
構文
引数
返り値
- 乗算された値のタプル。 Tuple。
例
クエリ:
結果:
tupleDivideByNumber
すべての値を数値で除算したタプルを返します。ゼロでの除算は inf
を返します。
構文
引数
返り値
- 除算された値のタプル。 Tuple。
例
クエリ:
結果:
tupleConcat
引数として渡されたタプルを結合します。
引数
tuples
– Tuple 型の任意の数の引数。
例
tupleIntDiv
分子のタプルと分母のタプルの整数除算を行い、商のタプルを返します。
構文
引数
返り値
tuple_num
とtuple_div
の商のタプル。 Tuple の整数値。
実装の詳細
tuple_num
またはtuple_div
に非整数値が含まれている場合、各非整数の分子または除数の近くの整数に丸めて計算されます。- ゼロでの除算に対してエラーが発生します。
例
クエリ:
結果:
クエリ:
結果:
tupleIntDivOrZero
tupleIntDiv と同様に、分子のタプルと分母のタプルの整数除算を行い、商のタプルを返します。0の除数に対してはエラーをスローする代わりに、商として0を返します。
構文
引数
返り値
tuple_num
とtuple_div
の商のタプル。 Tuple の整数値。- 除数が0の場合、その商は0として返されます。
実装の詳細
tuple_num
またはtuple_div
に非整数値が含まれている場合、tupleIntDiv と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。
例
クエリ:
結果:
tupleIntDivByNumber
分子のタプルを指定された除数で割り、商のタプルを返します。
構文
引数
返り値
tuple_num
とdiv
の商のタプル。 Tuple の整数値。
実装の詳細
tuple_num
またはdiv
に非整数値が含まれている場合、tupleIntDiv と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。- ゼロでの除算に対してエラーが発生します。
例
クエリ:
結果:
クエリ:
結果:
tupleIntDivOrZeroByNumber
tupleIntDivByNumber と同様に、分子のタプルを指定された除数で割り、商のタプルを返します。0の除数に対してはエラーをスローする代わりに、商として0を返します。
構文
引数
返り値
tuple_num
とdiv
の商のタプル。 Tuple の整数値。- 除数が0の場合、その商は0として返されます。
実装の詳細
tuple_num
またはdiv
に非整数値が含まれている場合、tupleIntDivByNumber と同様に、各非整数の分子または除数の近くの整数に丸めて計算されます。
例
クエリ:
結果:
クエリ:
結果:
tupleModulo
2つのタプルの除算操作の余りのタプルを返します。
構文
引数
返り値
tuple_num
とtuple_mod
の除算の余りのタプル。 Tuple の非ゼロ整数値。- ゼロでの除算に対してエラーが発生します。
例
クエリ:
結果:
tupleModuloByNumber
分子のタプルと指定された除数の除算操作の余りのタプルを返します。
構文
引数
返り値
tuple_num
とdiv
の除算の余りのタプル。 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
すべてのサポートされている関数は、距離関数のドキュメントに記載されています。