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 также поддерживает агрегацию нескольких массивов значений одновременно.
Это полезно, когда у вас есть связанные метрики, которые используют одни и те же ключи.
В этом примере:
- Результирующий кортеж содержит три массива
- Первый массив: ключи (названия браузеров) в отсортированном порядке
- Второй массив: общее количество показов для каждого браузера
- Третий массив: общее количество кликов для каждого браузера
См. также