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