sumMap
Суммирует один или несколько массивов value в соответствии с ключами, указанными в массиве key. Возвращает кортеж массивов: ключи в отсортированном порядке, затем значения, просуммированные для соответствующих ключей без переполнения.
Синтаксис
sumMap(key <Array>, value1 <Array>[, value2 <Array>, ...])тип Array.sumMap(Tuple(key <Array>[, value1 <Array>, value2 <Array>, ...]))тип Tuple.
Псевдоним: sumMappedArrays.
Аргументы
key: Array ключей.value1,value2, ...: Array значений, которые нужно суммировать для каждого ключа.
Передача кортежа массивов ключей и значений равносильна передаче отдельно массива ключей и массивов значений.
Число элементов в key и во всех массивах value должно совпадать для каждой строки, участвующей в агрегации.
Возвращаемое значение
- Возвращает кортеж массивов: первый массив содержит ключи в отсортированном порядке, затем следуют массивы, содержащие значения, просуммированные для соответствующих ключей.
Пример
Сначала создадим таблицу с именем sum_map и вставим в неё данные. Массивы ключей и значений хранятся отдельно в столбце statusMap типа Nested, а вместе — в столбце statusMapTuple типа Tuple, чтобы проиллюстрировать использование двух различных синтаксисов этой функции, описанных выше.
Запрос:
Далее мы выполняем запрос к таблице с использованием функции sumMap, используя синтаксис как для типов массивов, так и кортежей:
Запрос:
Результат:
Пример с несколькими массивами значений
sumMap также поддерживает одновременную агрегацию нескольких массивов значений.
Это полезно, когда у вас есть связанные метрики с общими ключами.
В этом примере:
- Результирующий кортеж содержит три массива
- Первый массив: ключи (названия браузеров) в отсортированном порядке
- Второй массив: общее количество показов для каждого браузера
- Третий массив: общее количество кликов для каждого браузера
См. также