sumMapWithOverflow
value
の配列を key
の配列で指定されたキーに基づいて合計します。ソートされた順序のキーと、対応するキーの合計値からなる二つの配列のタプルを返します。
これは sumMap 関数とは異なり、オーバーフローを伴って合計を行います。つまり、合計のデータ型は引数のデータ型と同じになります。
構文
sumMapWithOverflow(key <Array>, value <Array>)
Array type.sumMapWithOverflow(Tuple(key <Array>, value <Array>))
Tuple type.
引数
キーと値の配列のタプルを渡すことは、キーの配列と値の配列を個別に渡すのと同義です。
注記
合計を求める各行に対して key
と value
の要素数は同じでなければなりません。
戻り値
- ソートされた順序のキーと、対応するキーの合計値からなる二つの配列のタプルを返します。
例
まず、sum_map
という名前のテーブルを作成し、その中にいくつかのデータを挿入します。キーと値の配列は、Nested 型の statusMap
というカラムとして別々に格納され、両者を合わせたものは tuple 型の statusMapTuple
というカラムとして示され、上記の二つの異なる構文の使用例を示します。
クエリ:
sumMap
および sumMapWithOverflow
を配列型構文、さらに toTypeName
関数を使用してテーブルをクエリすると、sumMapWithOverflow
関数の合計値配列のデータ型は引数の型と同じで、どちらも UInt8
であることが分かります(つまり、オーバーフローを伴って合計が行われた)。sumMap
では、合計値の配列のデータ型は UInt8
から UInt64
に変更され、オーバーフローが発生しないようになっています。
クエリ:
同等の結果を得るためにタプル構文を使用することもできます。
結果:
関連項目