Функции Map
map
Создаёт значение типа Map(key, value) из пар ключ–значение.
Синтаксис
Аргументы
key_n— ключи элементовMap. Любой тип, поддерживаемый как тип ключа для Map.value_n— значения элементовMap. Любой тип, поддерживаемый как тип значения для Map.
Возвращаемое значение
- Тип
Map, содержащий парыkey:value. Map(key, value).
Примеры
Запрос:
Результат:
mapFromArrays
Создает map из массива (или map) ключей и массива (или map) значений.
Функция является удобной альтернативой синтаксису CAST([...], 'Map(key_type, value_type)').
Например, вместо того чтобы писать
CAST((['aa', 'bb'], [4, 5]), 'Map(String, UInt32)'), илиCAST([('aa',4), ('bb',5)], 'Map(String, UInt32)')
можно написать mapFromArrays(['aa', 'bb'], [4, 5]).
Синтаксис
Alias: MAP_FROM_ARRAYS(keys, values)
Аргументы
keys— массив или map ключей (Array или Map), из которых формируется результирующий map. Еслиkeys— массив, допускаются типыArray(Nullable(T))илиArray(LowCardinality(Nullable(T)))при условии, что он не содержит значения NULL.values— массив или map значений (Array или Map), из которых формируется результирующий map.
Возвращаемое значение
- Map, в котором ключи и значения сформированы из массива ключей и массива/map значений.
Пример
Запрос:
Результат:
mapFromArrays также принимает аргументы типа Map. Во время выполнения они приводятся к массиву из кортежей.
Результат:
Результат:
extractKeyValuePairs
Преобразует строку с парами ключ-значение в Map(String, String). Парсинг устойчив к «шуму» (например, в файлах логов). Пары ключ-значение во входной строке состоят из ключа, за которым следует разделитель ключ-значение и значение. Пары ключ-значение разделяются разделителем пар. Ключи и значения могут быть заключены в кавычки.
Синтаксис
Псевдонимы:
str_to_mapmapFromString
Аргументы
data— строка, из которой извлекаются пары ключ-значение. String или FixedString.key_value_delimiter— одиночный символ, разделяющий ключи и значения. По умолчанию:. String или FixedString.pair_delimiters— набор символов, разделяющих пары. По умолчанию,,и;. String или FixedString.quoting_character— одиночный символ, используемый в качестве кавычки. По умолчанию". String или FixedString.unexpected_quoting_character_strategy— стратегия обработки кавычек в неожиданных местах на этапахread_keyиread_value. Возможные значения:invalid,acceptиpromote.invalidотбросит ключ/значение и вернётся в состояниеWAITING_KEY.acceptбудет обрабатывать символ как обычный.promoteперейдёт в состояниеREAD_QUOTED_{KEY/VALUE}и начнёт обработку со следующего символа.
Возвращаемые значения
- Массив пар ключ-значение. Тип: Map(String, String)
Примеры
Запрос
Результат:
С одинарной кавычкой ' в качестве символа цитирования:
Результат:
Примеры unexpected_quoting_character_strategy:
unexpected_quoting_character_strategy=invalid
unexpected_quoting_character_strategy=accept
unexpected_quoting_character_strategy=promote
Escape-последовательности при отсутствии поддержки:
Результат:
Чтобы восстановить пары ключ–значение строковой карты, сериализованные с помощью toString:
Результат:
extractKeyValuePairsWithEscaping
То же, что и extractKeyValuePairs, но с поддержкой экранирования.
Поддерживаемые escape-последовательности: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v и \0.
Нестандартные escape-последовательности возвращаются как есть (включая обратный слэш), за исключением следующих:
\\, ', ", backtick (обратная кавычка), /, = или управляющие символы ASCII (c <= 31).
Эта функция подходит для случаев, когда предварительное и последующее экранирование неприменимы. Например, рассмотрим следующую
входную строку: a: "aaaa\"bbb". Ожидаемый вывод: a: aaaa\"bbbb.
- Предварительное экранирование: при предварительном экранировании будет получен вывод:
a: "aaaa"bbb", аextractKeyValuePairsзатем вернёт:a: aaaa - Последующее экранирование:
extractKeyValuePairsвернётa: aaaa\, и последующее экранирование оставит строку без изменений.
Начальные escape-последовательности будут пропущены в ключах и будут считаться недопустимыми для значений.
Примеры
Escape-последовательности при включённой поддержке экранирования:
Результат:
mapAdd
Собирает все ключи и суммирует соответствующие значения.
Синтаксис
Аргументы
Аргументы представляют собой map или tuple из двух arrays, где элементы в первом массиве являются ключами, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь одинаковый тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу (Int64, UInt64 или Float64). Общий приведённый тип используется как тип для результирующего массива.
Возвращаемое значение
- В зависимости от аргументов возвращается один map или tuple, где первый массив содержит отсортированные ключи, а второй массив — значения.
Пример
Запрос с типом Map:
Результат:
Запрос с кортежем:
Результат:
mapSubtract
Собирает все ключи и вычитает соответствующие им значения.
Синтаксис
Аргументы
Аргументы — это map или tuple из двух array, где элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа. Все массивы ключей должны иметь один и тот же тип, а все массивы значений должны содержать элементы, которые могут быть приведены к одному типу (Int64, UInt64 или Float64). Общий приведённый тип используется как тип для результирующего массива.
Возвращаемое значение
- В зависимости от аргументов функция возвращает map или tuple, где первый массив содержит отсортированные ключи, а второй массив содержит значения.
Пример
Запрос с типом Map:
Результат:
Запрос с отображением кортежей:
Результат:
mapPopulateSeries
Заполняет отсутствующие пары ключ–значение в отображении (map) с целочисленными ключами.
Чтобы можно было расширять множество ключей за пределы наибольшего значения, можно задать максимальный ключ.
Более конкретно, функция возвращает отображение, в котором ключи образуют последовательность от наименьшего до наибольшего ключа (или аргумента max, если он указан) с шагом 1 и соответствующими значениями.
Если для ключа не задано значение, используется значение по умолчанию.
В случае повторяющихся ключей с каждым ключом связывается только первое значение (в порядке появления).
Синтаксис
Для аргументов-массивов количество элементов в keys и values должно совпадать для каждой строки.
Аргументы
Аргументы — это Map или два массива Array, где первый массив содержит ключи, а второй — значения для каждого ключа.
Отображаемые массивы:
map— Map с целочисленными ключами. Map.
или
keys— Массив ключей. Array(Int).values— Массив значений. Array(Int).max— Максимальное значение ключа. Необязательный параметр. Int8, Int16, Int32, Int64, Int128, Int256.
Возвращаемое значение
- В зависимости от аргументов — Map или Tuple из двух Array: ключи в отсортированном порядке и значения, соответствующие этим ключам.
Пример
Запрос с типом Map:
Результат:
Запрос с сопоставленными массивами:
Результат:
mapKeys
Возвращает ключи заданной Map.
Эту функцию можно оптимизировать с помощью настройки optimize_functions_to_subcolumns.
При включённой настройке функция читает только подстолбец keys вместо всей Map.
Запрос SELECT mapKeys(m) FROM table преобразуется в SELECT m.keys FROM table.
Синтаксис
Аргументы
map— отображение. Map.
Возвращаемое значение
- Массив, содержащий все ключи из отображения
map. Array.
Пример
Запрос:
Результат:
mapContains
Возвращает, содержится ли заданный ключ в указанном отображении.
Синтаксис
Псевдоним: mapContainsKey(map, key)
Аргументы
map— Map. Map.key— ключ. Тип должен совпадать с типом ключа вmap.
Возвращаемое значение
1, еслиmapсодержитkey,0в противном случае. UInt8.
Пример
Запрос:
Результат:
mapContainsKeyLike
Синтаксис
Аргументы
map— Map. Map.pattern- Строковый шаблон для сопоставления.
Возвращаемое значение
1, еслиmapсодержитkey, соответствующий заданному шаблону,0— если не содержит.
Пример
Запрос:
Результат:
mapExtractKeyLike
Для map со строковыми ключами и шаблоном LIKE эта функция возвращает map с элементами, ключи которых соответствуют заданному шаблону.
Синтаксис
Аргументы
map— Map. Map.pattern- Строковый шаблон для сопоставления.
Возвращаемое значение
- Map, содержащая элементы, ключи которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map.
Пример
Запрос:
Результат:
mapValues
Возвращает значения указанной карты (Map).
Эта функция может быть оптимизирована с помощью настройки optimize_functions_to_subcolumns.
При включённой настройке функция считывает только подстолбец values вместо всей карты.
Запрос SELECT mapValues(m) FROM table преобразуется в SELECT m.values FROM table.
Синтаксис
Аргументы
map—Map. Map.
Возвращаемое значение
- Массив, содержащий все значения из
map. Array.
Пример
Запрос:
Результат:
mapContainsValue
Возвращает, содержится ли заданный ключ в указанной карте.
Синтаксис
Псевдоним: mapContainsValue(map, value)
Аргументы
map— Map. Map.value— Значение. Тип должен совпадать с типом значенияmap.
Возвращаемое значение
1, еслиmapсодержитvalue,0в противном случае. UInt8.
Пример
Запрос:
Результат:
mapContainsValueLike
Синтаксис
Аргументы
map— Map. Map.pattern- Строковый шаблон для сопоставления.
Возвращаемое значение
1, еслиmapсодержитvalue, соответствующее указанному шаблону,0в противном случае.
Пример
Запрос:
Результат:
mapExtractValueLike
Получив map со строковыми значениями и шаблоном LIKE, функция возвращает map с элементами, чьи значения соответствуют этому шаблону.
Синтаксис
Аргументы
map— Map. Map.pattern- Строковый шаблон для сопоставления.
Возвращаемое значение
- Map, содержащая элементы, значения которых соответствуют указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая Map.
Пример
Запрос:
Результат:
mapApply
Применяет функцию к каждому элементу карты.
Синтаксис
Аргументы
func— lambda-функция.map— Map.
Возвращаемое значение
- Возвращает объект Map, полученный из исходного объекта Map путём применения
func(map1[i], ..., mapN[i])к каждому элементу.
Пример
Запрос:
Результат:
mapFilter
Фильтрует map, применяя функцию к каждому элементу карты.
Синтаксис
Аргументы
func- лямбда-функция.map— Map.
Возвращаемое значение
- Возвращает map, содержащий только те элементы из
map, для которыхfunc(map1[i], ..., mapN[i])возвращает значение, не равное 0.
Пример
Запрос:
Результат:
mapUpdate
Синтаксис
Аргументы
Возвращаемое значение
- Возвращает
map1с обновлёнными значениями для соответствующих ключей изmap2.
Пример
Запрос:
Результат:
mapConcat
Объединяет несколько map на основе совпадения их ключей.
Если элементы с одинаковым ключом присутствуют более чем в одной входной map, все элементы добавляются в результирующую map, но только первый элемент доступен через оператор [].
Синтаксис
Аргументы
maps– Произвольное количество значений типа Map.
Возвращаемое значение
- Возвращает значение типа Map, полученное объединением карт, переданных в качестве аргументов.
Примеры
Запрос:
Результат:
Запрос:
Результат:
mapExists([func,], map)
Возвращает 1, если в map есть хотя бы одна пара ключ-значение, для которой func(key, value) возвращает что-либо, отличное от 0. В противном случае возвращает 0.
mapExists — функция высшего порядка.
Вы можете передать ей лямбда-функцию в качестве первого аргумента.
Пример
Запрос:
Результат:
mapAll([func,] map)
Возвращает 1, если func(key, value) возвращает значение, отличное от 0, для всех пар «ключ–значение» в map. В противном случае возвращает 0.
Обратите внимание, что mapAll — это функция высшего порядка.
В качестве первого аргумента ей можно передать лямбда-функцию.
Пример
Запрос:
Результат:
mapSort([func,], map)
Сортирует элементы карты по возрастанию.
Если указана функция func, порядок сортировки определяется результатом применения func к ключам и значениям карты.
Примеры
Подробнее см. справочник по функции arraySort.
mapPartialSort
Сортирует элементы карты в порядке возрастания с дополнительным аргументом limit, который позволяет выполнять частичную сортировку.
Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям карты.
Синтаксис
Аргументы
func– необязательная функция, применяемая к ключам и значениям отображения. Lambda function.limit– количество элементов, которые будут отсортированы (элементы с позициями в диапазоне [1..limit]). (U)Int.map– отображение для сортировки. Map.
Возвращаемое значение
- Частично отсортированное отображение. Map.
Пример
mapReverseSort([func,], map)
Сортирует элементы map в порядке убывания.
Если указана функция func, порядок сортировки определяется результатом её применения к ключам и значениям map.
Примеры
Подробнее см. функцию arrayReverseSort.
mapPartialReverseSort
Сортирует элементы map в порядке убывания с дополнительным аргументом limit, позволяющим выполнять частичную сортировку.
Если указана функция func, порядок сортировки определяется результатом функции func, применённой к ключам и значениям map.
Синтаксис
Аргументы
func– необязательная функция, применяемая к ключам и значениям map. Lambda function.limit– сортируются элементы с индексами в диапазоне [1..limit]. (U)Int.map– объект типа Map для сортировки. Map.
Возвращаемое значение
- Частично отсортированный объект типа Map. Map.
Пример
extractKeyValuePairs
Введено в: v
Извлекает пары ключ-значение из произвольной строки. Строка не обязана строго соответствовать формату пар ключ-значение;
она может содержать «шум» (например, файлы журналов / логи). Формат пар ключ-значение, который нужно интерпретировать, задаётся через аргументы функции.
Пара ключ-значение состоит из ключа, за которым следует key_value_delimiter, и значения. Также поддерживаются ключи и значения, заключённые в кавычки. Пары ключ-значение должны быть разделены разделителями пар ключ-значение.
Синтаксис
Аргументы
data- Строка, из которой извлекаются пары ключ-значение. String или FixedString.key_value_delimiter- Символ, используемый в качестве разделителя между ключом и значением. По умолчанию:. String или FixedString.pair_delimiters- Набор символов, используемых в качестве разделителей между парами. По умолчанию\space,,и;. String или FixedString.quoting_character- Символ, используемый в качестве символа кавычек. По умолчанию". String или FixedString.unexpected_quoting_character_strategy- Стратегия обработки символов кавычек в неожиданных местах во время фазread_keyиread_value. Возможные значения:invalid,acceptиpromote.invalidотбросит ключ/значение и вернёт состояниеWAITING_KEY.acceptбудет трактовать его как обычный символ.promoteпереведёт в состояниеREAD_QUOTED_{KEY/VALUE}и начнёт со следующего символа. Значение по умолчанию —INVALID.
Возвращаемые значения
- Извлечённые пары ключ-значение в Map(String, String).
Примеры
Запрос:
Простой пример
Одинарная кавычка как символ обрамления
Примеры unexpected_quoting_character_strategy:
unexpected_quoting_character_strategy=invalid
unexpected_quoting_character_strategy=accept
unexpected_quoting_character_strategy=promote
Escape-последовательности при отключённой поддержке экранирования
Синтаксис
Псевдонимы: str_to_map, mapFromString
Аргументы
- Отсутствуют.
Возвращаемое значение
Примеры
extractKeyValuePairsWithEscaping
Введена в: v
Та же функция, что и extractKeyValuePairs, но с поддержкой экранирования.
Поддерживаемые последовательности экранирования: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v и \0.
Нестандартные последовательности экранирования возвращаются без изменений (включая обратный слеш), за исключением следующих:
\\, ', ", backtick, /, = или управляющие символы ASCII (c <= 31).
Эта функция подходит для случаев, когда предварительное и последующее экранирование неприменимы. Например, рассмотрим следующую
входную строку: a: "aaaa\"bbb". Ожидаемый результат: a: aaaa\"bbbb.
- Предварительное экранирование: при предварительном экранировании результат будет:
a: "aaaa"bbb", а затемextractKeyValuePairsвернёт:a: aaaa- Последующее экранирование:
extractKeyValuePairsвернётa: aaaa\, и последующее экранирование сохранит это без изменений.
- Последующее экранирование:
Начальные последовательности экранирования в ключах будут пропущены и будут считаться недопустимыми для значений.
Последовательности экранирования при включённой поддержке экранирования
Синтаксис
Аргументы
- Нет.
Возвращаемое значение
Примеры
map
Добавлена в: v21.1
Создаёт значение типа Map(key, value) из пар ключ–значение.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает map с парами ключ:значение. Map(Any, Any)
Примеры
Пример использования
mapAdd
Добавлена в версии: v20.7
Собирает все ключи и суммирует соответствующие значения.
Синтаксис
Аргументы
arg1[, arg2, ...]— значения типовMapилиTupleиз двух массивов, в которых элементы первого массива представляют ключи, а второй массив содержит значения для каждого ключа.Map(K, V)илиTuple(Array(T), Array(T))
Возвращаемое значение
Возвращает значение типа Map или Tuple, где первый массив содержит отсортированные ключи, а второй массив — соответствующие им значения. Map(K, V) или Tuple(Array(T), Array(T))
Примеры
Для типа Map
С использованием кортежа
mapAll
Введена в: v23.4
Проверяет, выполняется ли условие для всех пар ключ–значение в map.
mapAll — это функция высшего порядка.
В качестве первого аргумента ей можно передать лямбда-функцию.
Синтаксис
Аргументы
func— лямбда-функция.Lambda functionmap— проверяемая структура Map.Map(K, V)
Возвращаемое значение
Возвращает 1, если все пары ключ-значение удовлетворяют условию, иначе 0. UInt8
Примеры
Пример использования
mapApply
Впервые представлена в: v22.3
Применяет функцию к каждому элементу map.
Синтаксис
Аргументы
func— лямбда-функция.Lambda functionmap— map, к которому применяется функция.Map(K, V)
Возвращаемое значение
Возвращает новый map, полученный из исходного map посредством применения func к каждому элементу. Map(K, V)
Примеры
Пример использования
mapConcat
Появилась в версии: v23.4
Объединяет несколько значений типа Map по совпадающим ключам.
Если элементы с одинаковым ключом присутствуют более чем в одном входном значении Map, все элементы добавляются в результирующее значение Map, но через оператор [] доступен только первый.
Синтаксис
Аргументы
maps— произвольное количество отображений типаMap.
Возвращаемое значение
Возвращает Map, полученный объединением карт, переданных в качестве аргументов. Map
Примеры
Пример использования
mapContainsKey
Введена в версии: v21.2
Определяет, содержится ли ключ в map.
Синтаксис
Псевдонимы: mapContains
Аргументы
map— отображение, в котором выполняется поиск.Map(K, V)key— ключ для поиска. Тип должен совпадать с типом ключа отображения.Any
Возвращаемое значение
Возвращает 1, если отображение содержит ключ, и 0, если не содержит. UInt8
Примеры
Пример использования
mapContainsKeyLike
Добавлено в версии: v23.4
Проверяет, содержит ли map ключ, соответствующий заданному шаблону LIKE.
Синтаксис
Аргументы
map— Карта, в которой выполняется поиск.Map(K, V)pattern— Шаблон для сопоставления с ключами.const String
Возвращаемое значение
Возвращает 1, если map содержит ключ, соответствующий pattern, иначе 0. UInt8
Примеры
Пример использования
mapContainsValue
Впервые представлена в: v25.6
Определяет, содержится ли значение в отображении (map).
Синтаксис
Аргументы
map— отображение, в котором выполняется поиск.Map(K, V)value— значение, которое требуется найти. Тип должен совпадать с типом значений отображения.Any
Возвращаемое значение
Возвращает 1, если отображение содержит это значение, и 0 в противном случае. UInt8
Примеры
Пример использования
mapContainsValueLike
Впервые появилась в версии: v25.5
Проверяет, содержит ли отображение (map) значение, соответствующее шаблону LIKE.
Синтаксис
Аргументы
map— карта, в которой выполняется поиск.Map(K, V)pattern— шаблон для сопоставления значений.const String
Возвращаемое значение
Возвращает 1, если map содержит значение, соответствующее pattern, иначе 0. UInt8
Примеры
Пример использования
mapExists
Введена в версии: v23.4
Проверяет, выполняется ли условие хотя бы для одной пары ключ–значение в типе данных Map.
mapExists — это функция высшего порядка.
В качестве первого аргумента ей можно передать лямбда-функцию.
Синтаксис
Аргументы
func— необязательный параметр. Лямбда-функция.Lambda functionmap— отображение для проверки.Map(K, V)
Возвращаемое значение
Возвращает 1, если хотя бы одна пара ключ-значение удовлетворяет условию, иначе 0. UInt8
Примеры
Пример использования
mapExtractKeyLike
Добавлена в версии v23.4
Для карты со строковыми ключами и шаблоном LIKE эта функция возвращает карту с элементами, ключи которых соответствуют шаблону.
Синтаксис
Аргументы
map— Карта, из которой выполняется извлечение.Map(K, V)pattern— Шаблон для сопоставления с ключами карты.const String
Возвращаемое значение
Возвращает карту, содержащую элементы, ключ которых соответствует указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая карта. Map(K, V)
Примеры
Пример использования
mapExtractValueLike
Впервые появилась в: v25.5
Для заданного map со строковыми значениями и шаблоном LIKE эта функция возвращает map с элементами, значения которых соответствуют шаблону.
Синтаксис
Аргументы
map— карта, из которой выполняется извлечение.Map(K, V)pattern— шаблон для сопоставления значений.const String
Возвращаемое значение
Возвращает карту, содержащую элементы, значение которых соответствует указанному шаблону. Если ни один элемент не соответствует шаблону, возвращается пустая карта. Map(K, V)
Примеры
Пример использования
mapFilter
Появилась в версии: v22.3
Фильтрует map, применяя функцию к каждому её элементу.
Синтаксис
Аргументы
func— лямбда-функция.Lambda functionmap— отображение (map), которое нужно отфильтровать.Map(K, V)
Возвращаемое значение
Возвращает отображение (map), содержащее только те элементы, для которых func возвращает значение, отличное от 0. Map(K, V)
Примеры
Пример использования
mapFromArrays
Введена в версии: v23.3
Создаёт Map из массива или Map с ключами и массива или Map со значениями.
Функция является удобной альтернативой синтаксису CAST([...], 'Map(key_type, value_type)').
Синтаксис
Псевдонимы: MAP_FROM_ARRAYS
Аргументы
keys— Массив илиMapс ключами, из которых создаётся отображение.ArrayилиMapvalues— Массив илиMapсо значениями, из которых создаётся отображение.ArrayилиMap
Возвращаемое значение
Возвращает отображение с ключами и значениями, построенными на основе массива ключей и массива/Map значений. Map
Примеры
Базовое использование
Для входных данных типа map
mapKeys
Добавлено в версии: v21.2
Возвращает ключи указанного столбца типа Map.
Эта функция может быть оптимизирована путём включения настройки optimize_functions_to_subcolumns.
При включённой настройке функция читает только подстолбец keys вместо всего столбца Map.
Запрос SELECT mapKeys(m) FROM table преобразуется в SELECT m.keys FROM table.
Синтаксис
Аргументы
map— отображение, из которого извлекаются ключи.Map(K, V)
Возвращаемое значение
Возвращает массив, содержащий все ключи отображения. Array(T)
Примеры
Пример использования
mapPartialReverseSort
Добавлена в версии: v23.4
Сортирует элементы map по убыванию с дополнительным аргументом limit, который позволяет выполнять частичную сортировку.
Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
Синтаксис
Аргументы
func— Необязательный параметр. Лямбда-функция.Лямбда-функцияlimit— Сортируются элементы в диапазоне[1..limit].(U)Int*map— Отображение (map), которое требуется отсортировать.Map(K, V)
Возвращаемое значение
Возвращает частично отсортированное отображение (map) по убыванию. Map(K, V)
Примеры
Пример использования
mapPartialSort
Введена в версии v23.4
Сортирует элементы map по возрастанию с дополнительным аргументом limit, который позволяет выполнять частичную сортировку. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
Синтаксис
Аргументы
func— Необязательный аргумент. Лямбда-функция.Lambda functionlimit— Сортируются элементы в диапазоне[1..limit].(U)Int*map— Отображение (map) для сортировки.Map(K, V)
Возвращаемое значение
Возвращает частично отсортированное отображение. Map(K, V)
Примеры
Пример использования
mapPopulateSeries
Введена в: v20.10
Заполняет отсутствующие пары ключ-значение в map с целочисленными ключами.
Чтобы можно было продолжить последовательность ключей за пределы наибольшего значения, можно указать максимальный ключ.
Более точно, функция возвращает map, в котором ключи образуют последовательность от наименьшего до наибольшего ключа (или до аргумента max, если он указан) с шагом 1 и соответствующими значениями.
Если для ключа не задано значение, используется значение по умолчанию.
Если ключи повторяются, с ключом связывается только первое значение (в порядке появления).
Синтаксис
Аргументы
map— Map с целочисленными ключами.Map((U)Int*, V)keys— Массив ключей.Array(T)values— Массив значений.Array(T)max— Необязательный параметр. Максимальное значение ключа.Int8илиInt16илиInt32илиInt64илиInt128илиInt256
Возвращаемое значение
Возвращает Map или кортеж из двух массивов, в котором первый содержит ключи в отсортированном порядке, а второй — значения для соответствующих ключей. Map(K, V) или Tuple(Array(UInt*), Array(Any))
Примеры
С типом Map
С сопоставленными массивами
mapReverseSort
Введена в версии: v23.4
Сортирует элементы map в порядке убывания.
Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
Синтаксис
Аргументы
func— необязательная лямбда‑функция.Lambda functionmap— отображение для сортировки.Map(K, V)
Возвращаемое значение
Возвращает отображение, отсортированное по убыванию. Map(K, V)
Примеры
Пример использования
mapSort
Впервые добавлена в: v23.4
Сортирует элементы map по возрастанию. Если указана функция func, порядок сортировки определяется результатом применения функции func к ключам и значениям map.
Синтаксис
Аргументы
func— Необязательная лямбда-функция.Lambda functionmap— Map для сортировки.Map(K, V)
Возвращаемое значение
Возвращает Map, отсортированный по возрастанию. Map(K, V)
Примеры
Пример использования
mapSubtract
Появилась в версии v20.7
Собирает все ключи и вычитает соответствующие им значения.
Синтаксис
Аргументы
arg1[, arg2, ...]— значения типаMapили кортежи из двух массивов, в которых элементы первого массива являются ключами, а второй массив содержит значения, соответствующие каждому ключу.Map(K, V)илиTuple(Array(T), Array(T))
Возвращаемое значение
Возвращает одно значение типа Map или кортеж, где первый массив содержит отсортированные ключи, а второй массив — соответствующие им значения. Map(K, V) или Tuple(Array(T), Array(T))
Примеры
С типом Map
С отображением с кортежами в качестве ключей
mapUpdate
Впервые появилась в: v22.3
Для двух map возвращает первую map, в которой значения заменены на значения из второй map для соответствующих ключей.
Синтаксис
Аргументы
map1— Отображение, которое нужно обновить.Map(K, V)map2— Отображение, используемое для обновления.Map(K, V)
Возвращаемое значение
Возвращает map1, в котором значения для соответствующих ключей обновлены значениями из map2. Map(K, V)
Примеры
Базовое использование
mapValues
Введена в версии: v21.2
Возвращает значения заданной карты.
Эту функцию можно оптимизировать, включив настройку optimize_functions_to_subcolumns.
При включённой настройке функция читает только подстолбец values вместо всей карты.
Запрос SELECT mapValues(m) FROM table преобразуется в SELECT m.values FROM table.
Синтаксис
Аргументы
map— отображение, из которого извлекаются значения.Map(K, V)
Возвращаемое значение
Возвращает массив, содержащий все значения из отображения. Array(T)
Примеры
Пример использования