Функции для работы с контейнерами map
map
Преобразовывает пары ключ:значение в тип данных Map(key, value).
Синтаксис
Аргументы
key— ключ. String, Integer, LowCardinality, FixedString, UUID, Date, DateTime, Date32, Enum.value— значение. Любой тип, включая Map и Array.
Возвращаемое значение
- Структура данных в виде пар
ключ:значение.
Тип: Map(key, value).
Примеры
Запрос:
Результат:
Запрос:
Результат:
Смотрите также
- тип данных Map(key, value)
mapAdd
Собирает все ключи и суммирует соответствующие значения.
Синтаксис
Аргументы
Аргументами являются контейнеры Map или кортежи из двух массивов, где элементы в первом массиве представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые можно приводить к одному типу (Int64, UInt64 или Float64). Общий приведенный тип используется в качестве типа для результирующего массива.
Возвращаемое значение
- В зависимости от типа аргументов возвращает один Map или кортеж, в котором первый массив содержит отсортированные ключи, а второй — значения.
Пример
Запрос с кортежем:
Результат:
Запрос с контейнером Map:
Результат:
mapSubtract
Собирает все ключи и вычитает соответствующие значения.
Синтаксис
Аргументы
Аргументами являются контейнеры Map или кортежи из двух массивов, где элементы в первом массиве представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые можно приводить к одному типу (Int64, UInt64 или Float64). Общий приведенный тип используется в качестве типа для результирующего массива.
Возвращаемое значение
- В зависимости от аргумента возвращает один Map или кортеж, в котором первый массив содержит отсортированные ключи, а второй — значения.
Пример
Запрос:
Результат:
Запрос с контейнером Map:
Результат:
mapPopulateSeries
Заполняет недостающие ключи в контейнере map (пара массивов ключей и значений), где ключи являются целыми числами. Кроме того, он поддерживает указание максимального ключа, который используется для расширения массива ключей.
Синтаксис
Генерирует контейнер map, где ключи - это серия чисел, от минимального до максимального ключа (или аргумент max, если он указан), взятых из массива keys с размером шага один, и соответствующие значения, взятые из массива values. Если значение не указано для ключа, то в результирующем контейнере используется значение по умолчанию.
Количество элементов в keys и values должно быть одинаковым для каждой строки.
Аргументы
Аргументами являются контейнер Map или два массива, где первый массив представляет ключи, а второй массив содержит значения для каждого ключа.
Сопоставленные массивы:
keys— массив ключей. Array(Int).values— массив значений. Array(Int).max— максимальное значение ключа. Необязательный параметр. Int8, Int16, Int32, Int64, Int128, Int256.
или
map— контейнерMapс целочисленными ключами. Map.
Возвращаемое значение
- В зависимости от аргумента возвращает контейнер Map или кортеж из двух массивов: ключи отсортированные по порядку и значения соответствующих ключей.
Пример
Запрос с сопоставленными массивами:
Результат:
Запрос с контейнером Map:
Результат:
mapContains
Определяет, содержит ли контейнер map ключ key.
Синтаксис
Аргументы
map— контейнер Map. Map.key— ключ. Тип соответстует типу ключей параметраmap.
Возвращаемое значение
1еслиmapвключаетkey, иначе0.
Тип: UInt8.
Пример
Запрос:
Результат:
mapKeys
Возвращает все ключи контейнера map.
Функцию можно оптимизировать, если включить настройку optimize_functions_to_subcolumns. При optimize_functions_to_subcolumns = 1 функция читает только подстолбец keys вместо чтения и обработки данных всего столбца. Запрос SELECT mapKeys(m) FROM table преобразуется к запросу SELECT m.keys FROM table.
Синтаксис
Аргументы
map— контейнер Map. Map.
Возвращаемое значение
- Массив со всеми ключами контейнера
map.
Тип: Array.
Пример
Запрос:
Результат:
mapValues
Возвращает все значения контейнера map.
Функцию можно оптимизировать, если включить настройку optimize_functions_to_subcolumns. При optimize_functions_to_subcolumns = 1 функция читает только подстолбец values вместо чтения и обработки данных всего столбца. Запрос SELECT mapValues(m) FROM table преобразуется к запросу SELECT m.values FROM table.
Синтаксис
Аргументы
map— контейнер Map. Map.
Возвращаемое значение
- Массив со всеми значениями контейнера
map.
Тип: Array.
Примеры
Запрос:
Результат: