array_sum
计算数组中所有元素的总和。
从 StarRocks 2.5 开始,array_sum() 可以将 lambda 表达式作为参数。但是,它不能直接与 Lambda 表达式一起使用。它必须处理从 array_map() 转换的结果。
语法
array_sum(array(type))
array_sum(lambda_function, arr1,arr2...) = array_sum(array_map(lambda_function, arr1,arr2...))
参数
array(type)
:要计算总和的数组。数组元素支持以下数据类型:BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、LARGEINT、FLOAT、DOUBLE 和 DECIMALV2。lambda_function
:lambda 表达式,用于计算 array_sum() 的目标数组。
返回值
返回一个数值。
示例
使用不带 lambda 函数的 array_sum
mysql> select array_sum([11, 11, 12]);
+-----------------------+
| array_sum([11,11,12]) |
+-----------------------+
| 34 |
+-----------------------+
mysql> select array_sum([11.33, 11.11, 12.324]);
+---------------------------------+
| array_sum([11.33,11.11,12.324]) |
+---------------------------------+
| 34.764 |
+---------------------------------+
使用带 lambda 函数的 array_sum
-- Multiply [1,2,3] by [1,2,3] and sum the elements.
select array_sum(array_map(x->x*x,[1,2,3]));
+---------------------------------------------+
| array_sum(array_map(x -> x * x, [1, 2, 3])) |
+---------------------------------------------+
| 14 |
+---------------------------------------------+
关键词
ARRAY_SUM,ARRAY