Перейти к основному содержимому

array_sum

Описание

Суммирует все элементы в массиве.

Начиная с Selena 2.5, array_sum() может принимать лямбда-выражение в качестве аргумента. Однако она не может работать напрямую с лямбда-выражением. Она должна работать с результатом, преобразованным из 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: лямбда-выражение, используемое для вычисления целевого массива для array_sum().

Возвращаемое значение

Возвращает числовое значение.

Примеры

Использование 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 |
+---------------------------------+

Использование array_sum с лямбда-функцией

-- Умножить [1,2,3] на [1,2,3] и суммировать элементы.
select array_sum(array_map(x->x*x,[1,2,3]));
+---------------------------------------------+
| array_sum(array_map(x -> x * x, [1, 2, 3])) |
+---------------------------------------------+
| 14 |
+---------------------------------------------+

keyword

ARRAY_SUM,ARRAY