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 に変更され、オーバーフローが発生しないようになっています。
クエリ:
同等の結果を得るためにタプル構文を使用することもできます。
結果:
関連項目