sumMapWithOverflow
key
配列で指定されたキーに従って value
配列の合計を計算します。ソートされたキーの配列と、対応するキーの合計値を含むタプルを返します。
これは、オーバーフローを伴う合計を行う点で、sumMap 関数とは異なります。つまり、合計のデータ型は引数のデータ型と同じになります。
構文
sumMapWithOverflow(key <Array>, value <Array>)
Array type.sumMapWithOverflow(Tuple(key <Array>, value <Array>))
Tuple type.
引数
キーと値の配列のタプルを渡すことは、キーの配列と値の配列をそれぞれ渡すことの同義です。
注記
key
と value
の要素数は、合計される各行に対して同じでなければなりません。
返される値
- ソートされたキーの配列と、対応するキーの合計値を含むタプルを返します。
例
まず、sum_map
というテーブルを作成し、データを挿入します。キーと値の配列は、Nested 型の statusMap
というカラムに別々に保存され、また tuple 型の statusMapTuple
というカラムに一緒に保存され、上記のこの関数の2つの異なる構文の使用を示します。
クエリ:
テーブルを sumMap
および sumMapWithOverflow
を使用して、配列型構文でクエリを実行し、toTypeName
関数を使用すると、sumMapWithOverflow
関数では、合計された値の配列のデータ型が引数の型と同じであることがわかります。両方とも UInt8
です(つまり、オーバーフローを伴う合計が行われました)。sumMap
では、合計された値の配列のデータ型が UInt8
から UInt64
に変更され、オーバーフローが発生しないようになっています。
クエリ:
同様に、同じ結果を得るためにタプル構文を使用することもできます。
結果:
関連情報