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

sumMapWithOverflow

key 配列で指定されたキーに従って value 配列の合計を計算します。ソートされたキーの配列と、対応するキーの合計値を含むタプルを返します。 これは、オーバーフローを伴う合計を行う点で、sumMap 関数とは異なります。つまり、合計のデータ型は引数のデータ型と同じになります。

構文

  • sumMapWithOverflow(key <Array>, value <Array>) Array type.
  • sumMapWithOverflow(Tuple(key <Array>, value <Array>)) Tuple type.

引数

キーと値の配列のタプルを渡すことは、キーの配列と値の配列をそれぞれ渡すことの同義です。

注記

keyvalue の要素数は、合計される各行に対して同じでなければなりません。

返される値

  • ソートされたキーの配列と、対応するキーの合計値を含むタプルを返します。

まず、sum_map というテーブルを作成し、データを挿入します。キーと値の配列は、Nested 型の statusMap というカラムに別々に保存され、また tuple 型の statusMapTuple というカラムに一緒に保存され、上記のこの関数の2つの異なる構文の使用を示します。

クエリ:

テーブルを sumMap および sumMapWithOverflow を使用して、配列型構文でクエリを実行し、toTypeName 関数を使用すると、sumMapWithOverflow 関数では、合計された値の配列のデータ型が引数の型と同じであることがわかります。両方とも UInt8 です(つまり、オーバーフローを伴う合計が行われました)。sumMap では、合計された値の配列のデータ型が UInt8 から UInt64 に変更され、オーバーフローが発生しないようになっています。

クエリ:

同様に、同じ結果を得るためにタプル構文を使用することもできます。

結果:

関連情報