array
emptyArray*.
Для той же цели используйте оператор [ ].
Синтаксис
x1— Константное значение любого типа T. Если указан только этот аргумент, массив будет иметь тип T. -[, x2, ..., xN]— Дополнительные N константных значений с общим супертипом сx1
Array(T)
Примеры
Допустимое использование
Query
Response
Query
Response
arrayAUCPR
arrayPRAUC
Аргументы
cores— Оценки, выдаваемые моделью предсказания.Array((U)Int*)илиArray(Float*)labels— Метки примеров: обычно 1 для положительного примера и 0 для отрицательного.Array((U)Int*)илиArray(Enum)partial_offsets—- Необязательно.
Array(T)из трёх неотрицательных целых чисел для вычисления частичной площади под PR-кривой (что эквивалентно вертикальной полосе в PR-пространстве) вместо полного AUC. Этот параметр полезен при распределённом вычислении PR AUC. Массив должен содержать следующие элементы [higher_partitions_tp,higher_partitions_fp,total_positives].higher_partitions_tp: Количество положительных меток в партициях с более высокими оценками.higher_partitions_fp: Количество отрицательных меток в партициях с более высокими оценками.total_positives: Общее количество положительных примеров во всём наборе данных.
При использовании
arr_partial_offsets arr_scores и arr_labels должны представлять только одну партицию всего набора данных, содержащую интервал оценок.
Набор данных следует разбить на непрерывные партиции, где каждая партиция содержит подмножество данных, оценки которых попадают в определённый диапазон.
Например:- Одна партиция может содержать все оценки в диапазоне [0, 0.5).
- Другая партиция может содержать оценки в диапазоне [0.5, 1.0].
Float64
Примеры
Пример использования
Query
Response
arrayAll
1, если лямбда-функция func(x [, y1, y2, ... yN]) возвращает true для всех элементов. В противном случае возвращает 0.
Синтаксис
func(x[, y1, ..., yN])— лямбда-функция, которая работает с элементами исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— исходный массив для обработки.Array(T)cond1_arr, ...— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T)
1, если лямбда-функция возвращает true для всех элементов, иначе 0 UInt8
Примеры
Все элементы удовлетворяют условию
Query
Response
Query
Response
arrayAutocorrelation
max_lag, корреляция вычисляется только для лагов в диапазоне [0, max_lag).
Если max_lag не указан, она вычисляется для всех возможных лагов.
Синтаксис
arr— Массив чисел.Array(T)max_lag— Необязательный параметр. Максимальное число вычисляемых лагов. Должен быть неотрицательным целым числом.Integer
Array(Float64)
Примеры
Линейный
Query
Response
Query
Response
Query
Response
Query
Response
arrayAvg
func, возвращает среднее значение результатов лямбда-функции.
Синтаксис
func(x[, y1, ..., yN])— Необязательно. Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, которые передают дополнительные аргументы в лямбда-функцию.Array(T)
Float64
Примеры
Базовый пример
Query
Response
Query
Response
arrayCompact
null. Порядок значений в результирующем массиве определяется порядком элементов в исходном массиве.
Синтаксис
arr— Массив, из которого удаляются дубликаты.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayConcat
arr1 [, arr2, ... , arrN]— N массивов, которые нужно объединить.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayCount
func(arr1[i], ..., arrN[i]) возвращает true.
Если func не указана, возвращает количество ненулевых элементов в массиве.
arrayCount — это функция высшего порядка.
Синтаксис
func— Необязательный. Функция, применяемая к каждому элементу массива (массивов).Лямбда-функцияarr1, ..., arrN— N массивов.Array(T)
func возвращает true. В противном случае возвращает количество ненулевых элементов в массиве. UInt32
Примеры
Пример использования
Query
Response
arrayCumSum
func— Необязательно. Лямбда-функция, применяемая к элементам массива на каждой позиции.Лямбда-функцияarr1— Исходный массив числовых значений.Array(T)[arr2, ..., arrN]— Необязательно. Дополнительные массивы того же размера, передаваемые в качестве аргументов лямбда-функции, если она указана.Array(T)
Array(T)
Примеры
Базовое использование
Query
Response
Query
Response
arrayCumSumNonNegative
func— Необязательно. Лямбда-функция, применяемая к элементам массива в каждой позиции.Лямбда-функцияarr1— Исходный массив числовых значений.Array(T)[arr2, ..., arrN]— Необязательно. Дополнительные массивы того же размера, передаваемые в лямбда-функцию в качестве аргументов, если она указана.Array(T)
Array(T)
Примеры
Базовое использование
Query
Response
Query
Response
arrayDifference
arr[1] - arr[0], третьим — arr[2] - arr[1] и так далее.
Тип элементов результирующего массива определяется правилами вывода типов для вычитания (например, UInt8 - UInt8 = Int16).
Синтаксис
arr— массивArray, для которого вычисляются разности между соседними элементами.Array(T)
UInt*
Примеры
Пример использования
Query
Response
Query
Response
arrayDistinct
arr— Массив, из которого нужно извлечь уникальные элементы.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayDotProduct
Размеры двух векторов должны быть одинаковыми. Типы Array и Tuple также могут содержать элементы разных типов.
v1— Первый вектор.Array((U)Int* | Float* | Decimal)илиTuple((U)Int* | Float* | Decimal)v2— Второй вектор.Array((U)Int* | Float* | Decimal)илиTuple((U)Int* | Float* | Decimal)
Возвращаемый тип определяется типами аргументов. Если Array или Tuple содержат элементы разных типов, то тип результата — супертип.
(U)Int* или Float* или Decimal
Примеры
Пример с Array
Query
Response
Query
Response
arrayElement
n, где n может быть любым целочисленным типом.
Если индекс выходит за пределы массива, возвращается значение по умолчанию (0 для чисел, пустая строка для строк и т. д.),
за исключением случаев, когда аргументом является неконстантный массив, а индекс 0 — константа. В этом случае возникнет ошибка Array indices are 1-based.
Массивы в ClickHouse индексируются с 1.
arr[-1] — последний элемент массива.
Оператор [n] обеспечивает ту же функциональность.
Синтаксис
arr— Массив, в котором выполняется поиск.Array(T). -n— Позиция элемента, который требуется получить.(U)Int*.
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
Query
Response
arrayElementOrNull
n, где n может иметь любой целочисленный тип.
Если индекс выходит за границы массива, вместо значения по умолчанию возвращается NULL.
Массивы в ClickHouse индексируются с 1.
arr[-1] — это последний элемент массива.
Синтаксис
arrays— Произвольное количество аргументов типа массив.Array
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
arrayEnumerate
[1, 2, 3, ..., length (arr)]
Эта функция обычно используется с оператором ARRAY JOIN. Она позволяет выполнять подсчёт
только один раз для каждого массива после применения ARRAY JOIN.
Эту функцию также можно использовать в функциях высшего порядка. Например, с её помощью можно получить индексы элементов массива, соответствующих условию.
Синтаксис
arr— массив, который нужно пронумеровать.Array
[1, 2, 3, ..., length (arr)]. Array(UInt32)
Примеры
Базовый пример с ARRAY JOIN
Query
Response
arrayEnumerateDense
arr— Массив, который нужно пронумеровать.Array(T)
arr, указывающий позицию первого вхождения каждого элемента в исходном массиве Array(T)
Примеры
Пример использования
Query
Response
arrayEnumerateDenseRanked
clear_depth— Отдельно нумерует элементы на указанном уровне. Должен быть меньше или равенmax_arr_depth.UInt*arr— N-мерный массив, элементы которого нужно пронумеровать.Array(T)max_array_depth— Максимальная эффективная глубина. Должна быть меньше или равна глубинеarr.UInt*
Array
Примеры
Базовое использование
Query
Response
Query
Response
Query
Response
arrayEnumerateUniq
ARRAY JOIN и агрегации элементов массива.
Функция может принимать в качестве аргументов несколько массивов одинакового размера. В этом случае уникальность определяется для кортежей элементов, находящихся на одинаковых позициях во всех массивах.
Синтаксис
arr1— Первый массив для обработки.Array(T)arr2, ...— Необязательно. Дополнительные массивы того же размера для обеспечения уникальности кортежей.Array(UInt32)
Array(T)
Примеры
Базовое использование
Query
Response
Query
Response
Query
Response
arrayEnumerateUniqRanked
clear_depth— Отдельно нумерует элементы на указанном уровне. Положительное целое число, меньшее или равноеmax_arr_depth.UInt*arr— N-мерный массив, элементы которого нужно пронумеровать.Array(T)max_array_depth— Максимальная эффективная глубина. Положительное целое число, меньшее или равное глубинеarr.UInt*
arr, где каждый элемент показывает порядковый номер данного элемента среди других элементов с тем же значением. Array(T)
Примеры
Пример 1
Query
Response
Query
Response
Query
Response
Query
Response
arrayExcept
source, которых нет в except, с сохранением исходного порядка.
Эта функция выполняет операцию разности множеств между двумя массивами. Для каждого элемента в source она проверяет, есть ли этот элемент в except (с использованием точного сравнения). Если нет, элемент включается в результат.
Операция сохраняет следующие свойства:
- Порядок элементов из
sourceсохраняется - Дубликаты в
sourceсохраняются, если их нет вexcept - NULL обрабатывается как отдельное значение
source— Исходный массив, содержащий элементы для фильтрации.Array(T)except— Массив, содержащий элементы, которые нужно исключить из результата.Array(T)
source, отсутствующие в except. Array(T)
Примеры
базовый
Query
Response
Query
Response
Query
Response
Query
Response
arrayExists
1, если в исходном массиве есть хотя бы один элемент, для которого func(x[, y1, y2, ... yN]) возвращает истину. В противном случае возвращает 0.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, которая применяется к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, которые передают лямбда-функции дополнительные аргументы.Array(T)
1, если лямбда-функция возвращает true хотя бы для одного элемента, иначе — 0 UInt8
Примеры
Пример использования
Query
Response
arrayFill
arrayFill последовательно обрабатывает исходный массив от первого элемента
до последнего, вычисляя лямбда-условие для каждой позиции с использованием элементов из
исходного массива и массивов условий. Если лямбда-функция возвращает false в
позиции i, функция заменяет этот элемент элементом из позиции i-1
в текущем состоянии массива. Первый элемент всегда сохраняется
независимо от условия.
Синтаксис
func(x [, y1, ..., yN])— лямбда-функцияfunc(x [, y1, y2, ... yN]) → F(x [, y1, y2, ... yN]), которая применяется к элементам исходного массива (x) и условных массивов (y).Лямбда-функцияsource_arr— исходный массив для обработки.Лямбда-функция[, cond1_arr, ... , condN_arr]— Необязательно. N условных массивов, которые передают дополнительные аргументы в лямбда-функцию.Array(T)
Array(T)
Примеры
Пример с одним массивом
Query
Response
Query
Response
arrayFilter
func(x[, y1, ..., yN])— лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T)
Array(T)
Примеры
Пример 1
Query
Response
Query
Response
arrayFirst
func(x[, y1, y2, ... yN]) возвращает true; в противном случае возвращает значение по умолчанию.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y). Лямбда-функция. -source_arr— Исходный массив для обработки.Array(T). -[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T).
λ истинна; в противном случае возвращает значение по умолчанию для T.
Примеры
Пример использования
Query
Response
Query
Response
arrayFirstIndex
func(x[, y1, y2, ... yN]) возвращает true; в противном случае возвращает ‘0’.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y). Лямбда-функция. -source_arr— Исходный массив, который нужно обработать.Array(T). -[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T).
func возвращает true, в противном случае возвращает 0 UInt32
Примеры
Пример использования
Query
Response
Query
Response
arrayFirstOrNull
func(x[, y1, y2, ... yN]) возвращает true; в противном случае возвращает NULL.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив, который нужно обработать.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T)
func возвращает true; в противном случае возвращает NULL.
Примеры
Пример использования
Query
Response
Query
Response
arrayFlatten
- Работает с вложенными массивами любой глубины.
- Не изменяет массивы, которые уже являются плоскими.
flatten
Аргументы
arr— Многомерный массив.Array(Array(T))
Array(T)
Примеры
Пример использования
Query
Response
arrayFold
λ(x, x1 [, x2, x3, ... xN])— Лямбда-функцияλ(acc, x1 [, x2, x3, ... xN]) → F(acc, x1 [, x2, x3, ... xN]), гдеF— операция, применяемая кaccи значениям массиваx, а затем результат снова используется какacc.Лямбда-функцияarr1 [, arr2, arr3, ... arrN]— N массивов, над которыми выполняется операция.Array(T)acc— Значение аккумулятора того же типа, что и возвращаемое значение лямбда-функции.
acc.
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
arrayIntersect
arrN— N массивов, из которых составляется новый массив.Array(T).
Array(T)
Примеры
Пример использования
Query
Response
arrayJaccardIndex
arr_x и arr_y Float64
Примеры
Пример использования
Query
Response
arrayJoin
arrayJoin принимает строку, содержащую массив, и разворачивает его, создавая несколько строк — по одной для каждого элемента массива.
Это отличается от обычных функций в ClickHouse, которые сопоставляют входные значения выходным в пределах одной и той же строки,
и агрегатных функций, которые берут группу строк и “сжимают” или “сводят” их в одну итоговую строку
(или в одно значение в итоговой строке, если используются с GROUP BY).
Все значения в столбцах просто копируются, за исключением значений в столбце, к которому применяется эта функция;
они заменяются соответствующим значением массива.
Синтаксис
unnest
Аргументы
arr— Массив, который нужно развернуть.Array(T)
arr.
Примеры
Базовое использование
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayLast
func(x [, y1, y2, ... yN]) возвращает true; в противном случае возвращает значение по умолчанию.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y). Лямбда-функция. -source— Исходный массив, который нужно обработать.Array(T). -[, cond1, ... , condN]— Необязательно. N массивов условий, передающих лямбда-функции дополнительные аргументы.Array(T).
func возвращает true; в противном случае возвращает значение по умолчанию для T.
Примеры
Пример использования
Query
Response
Query
Response
arrayLastIndex
func(x[, y1, y2, ... yN]) возвращает true; в противном случае возвращает ‘0’.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, которая применяется к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, которые передают дополнительные аргументы в лямбда-функцию.Array(T)
func возвращает true; в противном случае возвращает 0 UInt32
Примеры
Пример использования
Query
Response
Query
Response
arrayLastOrNull
func(x [, y1, y2, ... yN]) возвращает true; в противном случае возвращает NULL.
Синтаксис
func(x [, y1, ..., yN])— лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y). Лямбда-функция. -source_arr— исходный массив для обработки.Array(T). -[, cond1_arr, ... , condN_arr]— необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T).
λ ложно; в противном случае возвращает NULL.
Примеры
Пример использования
Query
Response
Query
Response
arrayLevenshteinDistance
Float64
Примеры
Пример использования
Query
Response
arrayLevenshteinDistanceWeighted
from— первый массив.Array(T). -to— второй массив.Array(T). -from_weights— веса первого массива.Array((U)Int*|Float*)to_weights— веса второго массива.Array((U)Int*|Float*)
Float64
Примеры
Пример использования
Query
Response
arrayMap
func— Лямбда-функция, которая применяется к элементам исходного массива (x) и условных массивов (y).Лямбда-функцияarr— N массивов для обработки.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
arrayMax
func, возвращает максимальный элемент среди результатов лямбда-функции.
Синтаксис
func(x[, y1, ..., yN])— Необязательно. Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T)
Query
Response
Query
Response
arrayMin
func, возвращает минимальный элемент среди результатов её выполнения.
Синтаксис
func(x[, y1, ..., yN])— Необязательно. Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)cond1_arr, ...— Необязательно. N массивов условий, передающих в лямбда-функцию дополнительные аргументы.Array(T)
Query
Response
Query
Response
arrayNormalizedGini
Tuple(Float64, Float64, Float64)
Примеры
Пример использования
Query
Response
arrayPartialReverseSort
arrayReverseSort, но с дополнительным аргументом limit, который позволяет выполнять частичную сортировку.
Синтаксис
f(arr[, arr1, ... ,arrN])— Лямбда-функция, применяемая к элементам массиваarr.Лямбда-функцияarr— Массив для сортировки.Array(T)arr1, ... ,arrN— N дополнительных массивов, еслиfпринимает несколько аргументов.Array(T)limit— Значение индекса, до которого выполняется сортировка.(U)Int*
[1..limit] отсортированы
в порядке убывания. Остальные элементы (limit..N] находятся в неопределённом порядке.
Примеры
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialShuffle
[1..limit] представляют собой случайное
подмножество исходного массива. Оставшаяся часть (limit..n] содержит элементы, не входящие в диапазон [1..limit], в неопределённом порядке.
Значение limit должно находиться в диапазоне [1..n]. Значения вне этого диапазона эквивалентны полному arrayShuffle:
Эта функция не материализует константы.Значение
limit должно находиться в диапазоне [1..N]. Значения вне этого диапазона эквивалентны полному arrayShuffle.arr— Массив, который нужно перемешать.Array(T)seed— Необязательно. Seed, используемый при генерации случайных чисел. Если не указан, используется случайное значение.(U)Int*limit— Необязательно. Число, ограничивающее количество перестановок элементов, в диапазоне[1..N].(U)Int*
Array(T)
Примеры
no_limit1
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPartialSort
arraySort, но с дополнительным аргументом limit, который позволяет выполнять частичную сортировку.
Синтаксис
f(arr[, arr1, ... ,arrN])— Лямбда-функция, применяемая к элементам массиваx.Лямбда-функцияarr— Массив, который нужно отсортировать.Array(T)arr1, ... ,arrN— N дополнительных массивов, еслиfпринимает несколько аргументов.Array(T)limit— Значение индекса, до которого будет выполняться сортировка.(U)Int*
[1..limit] отсортированы
по возрастанию. Остальные элементы (limit..N] находятся в неопределённом порядке.
Примеры
simple_int
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
arrayPopBack
arr— Массив, из которого нужно удалить последний элемент.Array(T)
arr, но без его последнего элемента Array(T)
Примеры
Пример использования
Query
Response
arrayPopFront
arr— массив, из которого нужно удалить первый элемент.Array(T)
arr, но без его первого элемента Array(T)
Примеры
Пример использования
Query
Response
arrayProduct
func, возвращает произведение результатов лямбда-функции для элементов массива.
Синтаксис
func(x[, y1, ..., yN])— Необязательно. Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, передающих дополнительные аргументы в лямбда-функцию.Array(T)
Float64
Примеры
Базовый пример
Query
Response
Query
Response
arrayPushBack
arr— Массив, в конец которого добавляется значениеx.Array(T)x—- Одно значение, добавляемое в конец массива.
Array(T).
- В массив чисел можно добавлять только числа, а в массив строк — только строки.
- При добавлении чисел ClickHouse автоматически приводит тип
xк типу данных массива. - Может быть
NULL. Функция добавляет в массив элементNULL, а тип элементов массива преобразуется вNullable.
arr, но с дополнительным значением x в конце Array(T)
Примеры
Пример использования
Query
Response
arrayPushFront
arr— Массив, в конец которого добавляется значениеx.Array(T). -x—- Одно значение, добавляемое в начало массива.
Array(T).
- В массив чисел можно добавлять только числа, а в массив строк — только строки.
- При добавлении чисел ClickHouse автоматически приводит тип
xк типу данных массива. - Может быть
NULL. Функция добавляет в массив элементNULL, а тип элементов массива преобразуется вNullable.
arr, но с дополнительным значением x в начале массива Array(T)
Примеры
Пример использования
Query
Response
arrayROCAUC
arrayAUC
Аргументы
scores— Оценки, которые выдаёт модель.Array((U)Int*)илиArray(Float*)labels— Метки объектов, обычно 1 для положительного примера и 0 для отрицательного.Array((U)Int*)илиEnumscale— Необязательно. Определяет, нужно ли возвращать нормализованную площадь. Если false, вместо этого возвращается площадь под кривой TP (true positives) x FP (false positives). Значение по умолчанию: true.Boolpartial_offsets—- Массив из четырёх неотрицательных целых чисел для вычисления частичной площади под ROC-кривой (эквивалентной вертикальной полосе в пространстве ROC) вместо полного AUC. Эта опция полезна для распределённого вычисления ROC AUC. Массив должен содержать следующие элементы [
higher_partitions_tp,higher_partitions_fp,total_positives,total_negatives]. Array из неотрицательных Integers. Необязательно.higher_partitions_tp: Количество положительных меток в партициях с более высокими оценками.higher_partitions_fp: Количество отрицательных меток в партициях с более высокими оценками.total_positives: Общее количество положительных примеров во всём наборе данных.total_negatives: Общее количество отрицательных примеров во всём наборе данных.
Когда используется
arr_partial_offsets, arr_scores и arr_labels должны представлять только одну партицию всего набора данных, содержащую некоторый диапазон оценок.
Набор данных следует разделить на непрерывные партиции, где каждая партиция содержит подмножество данных, оценки которых попадают в определённый диапазон.
Например:- Одна партиция может содержать все оценки в диапазоне [0, 0.5).
- Другая партиция может содержать оценки в диапазоне [0.5, 1.0].
Float64
Примеры
Пример использования
Query
Response
arrayRandomSample
samples случайно выбранных элементов входного массива. Если samples превышает размер входного массива, размер выборки ограничивается размером массива, то есть возвращаются все элементы массива, но их порядок не гарантируется. Функция поддерживает как плоские, так и вложенные массивы.
Синтаксис
arr— Входной массив или многомерный массив, из которого производится выборка элементов.Array(T)samples— Количество элементов, которые нужно включить в случайную выборку.(U)Int*
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
arrayReduce
'max', 'sum'.
При использовании параметрических агрегатных функций параметр указывается после имени функции в круглых скобках: 'uniqUpTo(6)'.
Синтаксис
agg_f— имя агрегатной функции; должно быть константой.Stringarr1[, arr2, ... , arrN]— N массивов, соответствующих аргументамagg_f.Array(T)
Query
Response
Query
Response
Query
Response
arrayReduceInRanges
arrayReduce(agg_func, arraySlice(arr1, index, length), ...).
Синтаксис
agg_f— Имя используемой агрегатной функции.Stringranges— Диапазон, по которому выполняется агрегирование. Массив кортежей(i, r), содержащих индексi, с которого следует начинать, и диапазонr, по которому выполняется агрегирование.Array(T)илиTuple(T)arr1[, arr2, ... ,arrN]— N массивов в качестве аргументов агрегатной функции.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayRemove
array_remove
Аргументы
arr— Array(T) -elem— T
Array(T)
Примеры
Пример 1
Query
Response
Query
Response
arrayResize
arr— Массив, размер которого нужно изменить.Array(T)size— -Новая длина массива. Еслиsizeменьше исходного размера массива, массив обрезается справа. Еслиsizeбольше исходного размера массива, массив расширяется вправо значениямиextenderили значениями по умолчанию для типа данных элементов массива.extender— Значение, используемое для расширения массива. Может бытьNULL.
size. Array(T)
Примеры
Пример 1
Query
Response
Query
Response
arrayReverse
Функция
reverse(arr) выполняет ту же операцию, но работает и с другими типами данных,
помимо массивов.arr— Массив, который нужно развернуть.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayReverseFill
arrayReverseFill последовательно обрабатывает исходный массив от последнего
элемента к первому, вычисляя в каждой позиции лямбда-условие с использованием элементов
из исходного массива и массивов условий. Если в позиции i условие принимает значение false,
функция заменяет этот элемент элементом из позиции i+1
в текущем состоянии массива. Последний элемент всегда сохраняется
независимо от условия.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и условных массивов (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T)[, cond1_arr, ... , condN_arr]— Необязательно. N условных массивов, передающих дополнительные аргументы в лямбда-функцию.Array(T)
Array(T)
Примеры
Пример с одним массивом
Query
Response
Query
Response
arrayReverseSort
f, переданный массив сортируется по результату
применения этой функции к элементам массива, а затем отсортированный массив переворачивается.
Если f принимает несколько аргументов, в функцию arrayReverseSort передаётся несколько массивов,
аргументам func будут соответствовать их элементы.
Если сортируемый массив содержит -Inf, NULL, NaN или Inf, они будут отсортированы в следующем порядке:
-InfInfNaNNULL
arrayReverseSort — это функция высшего порядка.
Синтаксис
f(y1[, y2 ... yN])— лямбда-функция, применяемая к элементам массиваx. -arr— массив, который нужно отсортировать.Array(T)-arr1, ..., yN— необязательно. N дополнительных массивов, еслиfпринимает несколько аргументов.
x, отсортированный по убыванию, если лямбда-функция не указана; в противном случае
возвращает массив, отсортированный в соответствии с логикой переданной лямбда-функции, а затем перевёрнутый. Array(T).
Примеры
Пример 1
Query
Response
Query
Response
arrayReverseSplit
func(x[, y1, ..., yN]) возвращает значение, отличное от нуля, массив разбивается справа от элемента. После последнего элемента массив не разбивается.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Лямбда-функция[, cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, предоставляющих лямбда-функции дополнительные аргументы.Array(T)
Array(Array(T))
Примеры
Пример использования
Query
Response
arrayRotateLeft
n интерпретируются как циклический сдвиг вправо на абсолютную величину сдвига.
Синтаксис
arr— Массив, элементы которого нужно циклически сдвинуть.Array(T). -n— Количество элементов для циклического сдвига.(U)Int8/16/32/64.
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
arrayRotateRight
n трактуются как циклический сдвиг влево на абсолютную величину сдвига.
Синтаксис
arr— Массив, элементы которого нужно циклически сдвинуть.Array(T). -n— Количество элементов, на которое выполняется циклический сдвиг.(U)Int8/16/32/64.
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
arrayShiftLeft
arr— Массив, элементы которого нужно сдвинуть.Array(T). -n— Количество элементов, на которое нужно выполнить сдвиг.(U)Int8/16/32/64. -default— Необязательно. Значение по умолчанию для новых элементов.
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
arrayShiftRight
arr— Массив, элементы которого нужно сдвинуть.Array(T)n— Количество элементов, на которое нужно выполнить сдвиг.(U)Int8/16/32/64default— Необязательно. Значение по умолчанию для новых элементов.
Array(T)
Примеры
Пример использования
Query
Response
Query
Response
Query
Response
arrayShingles
arr— массив, для которого нужно сгенерировать массив шинглов.Array(T)l— длина каждого шингла.(U)Int*
Array(T)
Примеры
Пример использования
Query
Response
arrayShuffle
Эта функция не материализует константы.
arr— Массив, который нужно перемешать.Array(T)seed (optional)— Необязательно. Значение seed, используемое для генерации случайных чисел. Если не указано, используется случайное значение.(U)Int*
Array(T)
Примеры
Пример без seed (нестабильные результаты)
Query
Response
Query
Response
arraySimilarity
0 до 1 на основе взвешенного расстояния Левенштейна.
Синтаксис
from— первый массивArray(T)to— второй массивArray(T)from_weights— веса первого массива.Array((U)Int*|Float*)to_weights— веса второго массива.Array((U)Int*|Float*)
0 до 1, вычисленное на основе взвешенного расстояния Левенштейна Float64
Примеры
Пример использования
Query
Response
arraySlice
NULL.
Синтаксис
arr— Массив, из которого берётся срез.Array(T)offset— Отступ от края массива. Положительное значение указывает на смещение слева, а отрицательное — на отступ справа. Нумерация элементов массива начинается с1.(U)Int*length— Длина требуемого среза. Если указать отрицательное значение, функция возвращает открытый срез[offset, array_length - length]. Если не указывать это значение, функция возвращает срез[offset, the_end_of_array].(U)Int*
length элементов, начиная с указанного offset Array(T)
Примеры
Пример использования
Query
Response
arraySort
f, порядок сортировки определяется результатом
применения этой функции к каждому элементу массива.
Если лямбда-функция принимает несколько аргументов, в arraySort передаётся несколько
массивов, аргументам f будут соответствовать их элементы.
Если сортируемый массив содержит -Inf, NULL, NaN или Inf, они будут отсортированы в следующем порядке:
-InfInfNaNNULL
arraySort — это функция высшего порядка.
Синтаксис
f(y1[, y2 ... yN])— лямбда-функция, применяемая к элементам массиваx. -arr— массив, который необходимо отсортировать.Array(T)-arr1, ..., yN— Необязательно. N дополнительных массивов, еслиfпринимает несколько аргументов.
arr, отсортированный по возрастанию, если лямбда-функция не указана; в противном случае
возвращает массив, отсортированный в соответствии с логикой указанной лямбда-функции. Array(T).
Примеры
Пример 1
Query
Response
Query
Response
Query
Response
arraySplit
func(x [, y1, ..., yN]) возвращает значение, отличное от нуля, массив будет разделён слева от этого элемента. Массив не разделяется перед первым элементом.
Синтаксис
func(x[, y1, ..., yN])— Лямбда-функция, применяемая к элементам исходного массива (x) и условных массивов (y). Лямбда-функция. -source_arr— Исходный массив, который нужно разбитьArray(T). -[, cond1_arr, ... , condN_arr]— Необязательно. N условных массивов, передающих лямбда-функции дополнительные аргументы.Array(T).
Array(Array(T))
Примеры
Пример использования
Query
Response
arraySum
func, возвращает сумму элементов, полученных в результате её применения.
Синтаксис
func(x[, y1, ..., yN])— Необязательно. Лямбда-функция, применяемая к элементам исходного массива (x) и массивов условий (y).Лямбда-функцияsource_arr— Исходный массив для обработки.Array(T), cond1_arr, ... , condN_arr]— Необязательно. N массивов условий, которые передают дополнительные аргументы в лямбда-функцию.Array(T)
Query
Response
Query
Response
arraySymmetricDifference
Симметрическая разность более чем двух множеств математически определяется
как множество всех входных элементов, которые встречаются в нечётном числе входных множеств.
В отличие от этого, функция
arraySymmetricDifference просто возвращает множество входных элементов, которые содержатся не во всех входных множествах.arrN— N массивов, из которых создаётся новый массив.Array(T).
Array(T)
Примеры
Пример использования
Query
Response
arrayTranspose
arr— двумерный массив для транспонирования. Все внутренние массивы должны иметь одинаковую длину.Array(Array(T))
[i][j] результата равен элементу [j][i] исходного массива. Array(Array(T))
Примеры
Квадратная матрица
Query
Response
Query
Response
Query
Response
arrayUnion
arrN— N массивов, из которых создаётся новый массив.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayUniq
SELECT arrayUniq([1,2], [3,4], [5,6]) сформирует следующие кортежи:
- Позиция 1: (1,3,5)
- Позиция 2: (2,4,6)
2.
Все переданные массивы должны иметь одинаковую длину.
Синтаксис
arr1— Массив, для которого подсчитывается количество уникальных элементов.Array(T)[, arr2, ..., arrN]— Необязательно. Дополнительные массивы, используемые для подсчета количества уникальных кортежей из элементов, находящихся на соответствующих позициях в нескольких массивах.Array(T)
UInt32
Примеры
Один аргумент
Query
Response
Query
Response
arrayWithConstant
length, заполненный постоянным значением x.
Синтаксис
length— Количество элементов в массиве.(U)Int*x— Значение дляNэлементов массива, любого типа.
Array из N элементов со значением x. Array(T)
Примеры
Пример использования
Query
Response
arrayZip
arr1, arr2, ... , arrN— N массивов, объединяемых в один массив.Array(T)
Array(T)
Примеры
Пример использования
Query
Response
arrayZipUnaligned
arr1, arr2, ..., arrN— N массивов, объединённых в один массив.Array(T)
Array(T) или Tuple(T1, T2, ...)
Примеры
Пример использования
Query
Response
countEqual
x. Эквивалентно arrayCount(elem -> elem = x, arr).
Элементы NULL рассматриваются как отдельные значения.
Синтаксис
arr— Массив, в котором выполняется поиск.Array(T)x— Значение в массиве, количество вхождений которого нужно подсчитать. Любой тип.
x UInt64
Примеры
Пример использования
Query
Response
empty
Можно оптимизировать, включив настройку
optimize_functions_to_subcolumns. При optimize_functions_to_subcolumns = 1 функция читает только подстолбец size0 вместо чтения и обработки всего столбца типа Array. Запрос SELECT empty(arr) FROM TABLE; преобразуется в SELECT arr.size0 = 0 FROM TABLE;.arr— Входной массив.Array(T)
1 для пустого массива и 0 — для непустого массива UInt8
Примеры
Пример использования
Query
Response
emptyArrayDate
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayDateTime
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayFloat32
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayFloat64
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayInt16
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayInt32
- Нет аргументов.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayInt64
- Нет.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayInt8
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayString
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayToSingle
arr— Пустой массив.Array(T)
Array(T)
Примеры
Базовый пример
Query
Response
emptyArrayUInt16
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayUInt32
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayUInt64
- Нет.
Array(T)
Примеры
Пример использования
Query
Response
emptyArrayUInt8
- Отсутствуют.
Array(T)
Примеры
Пример использования
Query
Response
has
has(constant_array, column) работает как column IN (constant_array) и для оптимизации может использовать первичный ключ и индексы пропуска данных. Например, has([1, 10, 100], id) может использовать индекс первичного ключа, если id входит в PRIMARY KEY.
Эта оптимизация также применяется, когда столбец обёрнут в монотонную функцию (например, has([...], toDate(ts))).
Синтаксис
haystack— Исходный массив, map или JSON.ArrayилиMapилиJSONneedle— Искомое значение (элемент массива, ключ в map или строка path в JSON).
1, если haystack содержит указанное значение needle, в противном случае — 0. UInt8
Примеры
Базовое использование Array
Query
Response
Query
Response
Query
Response
Query
Response
hasAll
- Пустой массив является подмножеством любого массива.
Nullобрабатывается как значение.- Порядок значений в обоих массивах не имеет значения.
set— массив любого типа с набором элементов.Array(T)subset— массив любого типа, элементы которого имеют сsetобщий супертип; используется для проверки того, что он является подмножествомset.Array(T)
1, еслиsetсодержит все элементы изsubset.0— в противном случае.
NO_COMMON_TYPE, если элементы set и subset не имеют общего супертипа.
Примеры
Пустые массивы
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasAny
Nullобрабатывается как значение.- Порядок значений в обоих массивах не имеет значения.
arr_x— Массив любого типа с элементами.Array(T)arr_y— Массив любого типа, имеющий общий супертип с массивомarr_x.Array(T)
1, еслиarr_xиarr_yимеют хотя бы один общий элемент.0— в противном случае.
NO_COMMON_TYPE, если какие-либо элементы двух массивов не имеют общего супертипа.
Примеры
Один из массивов пуст
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
hasSubstr
array2 в array1 в точно таком же порядке.
Следовательно, функция вернёт 1 тогда и только тогда, когда array1 = prefix + array2 + suffix.
Иными словами, функция проверяет, содержатся ли все элементы array2 в array1, как и функция hasAll.
Кроме того, она проверяет, что элементы следуют в одинаковом порядке и в array1, и в array2.
- Функция вернёт
1, еслиarray2пуст. NULLобрабатывается как значение. Иными словами,hasSubstr([1, 2, NULL, 3, 4], [2,3])вернёт0. ОднакоhasSubstr([1, 2, NULL, 3, 4], [2,NULL,3])вернёт1- Порядок значений в обоих массивах важен.
NO_COMMON_TYPE, если какие-либо элементы двух массивов не имеют общего супертипа.
Синтаксис
arr1— Массив любого типа с произвольным набором элементов.Array(T)arr2— Массив любого типа с произвольным набором элементов.Array(T)
1, если массив arr1 содержит массив arr2; в противном случае возвращает 0. UInt8
Примеры
Оба массива пусты
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
indexOf
0.
Элементы со значением NULL обрабатываются как обычные значения.
Синтаксис
arr— Массив, в котором выполняется поискx.Array(T)x— Значение первого совпавшего элемента вarr, индекс которого нужно вернуть.UInt64
x в arr, если он существует. В противном случае возвращает 0. UInt64
Примеры
Базовый пример
Query
Response
Query
Response
indexOfAssumeSorted
1), если он присутствует в массиве.
Если массив не содержит искомого значения, функция возвращает 0.
В отличие от функции
indexOf, эта функция предполагает, что массив отсортирован по
возрастанию. Если массив не отсортирован, результат не определён.arr— Отсортированный массив, в котором выполняется поиск.Array(T)x— Значение первого совпадающего элемента в отсортированномarr, индекс которого нужно вернуть.UInt64
x в arr, если такой элемент существует. В противном случае возвращает 0. UInt64
Примеры
Базовый пример
Query
Response
kql_array_sort_asc
array1— Массив, который нужно отсортировать.Array(T)array2— Необязательно. Дополнительные массивы, которые переупорядочиваются в соответствии с порядком сортировкиarray1.Array(T)nulls_last— Необязательно. Логическое значение, указывающее, должны ли значения NULL располагаться в конце. По умолчанию — true.UInt8
Tuple(Array, ...)
Примеры
Базовое использование
Query
Response
kql_array_sort_desc
array1— Массив, который нужно отсортировать.Array(T)array2— Необязательные дополнительные массивы, которые переупорядочиваются в соответствии с порядком сортировкиarray1.Array(T)nulls_last— Необязательное логическое значение, указывающее, должны ли значения NULL располагаться в конце. По умолчанию — true.UInt8
Tuple(Array, ...)
Примеры
Базовое использование
Query
Response
length
- Для аргументов String или FixedString: вычисляет число байтов в строке.
- Для аргументов Array: вычисляет число элементов в массиве.
- Если функция применяется к аргументу FixedString, она является константным выражением.
OCTET_LENGTH
Аргументы
x— значение, для которого вычисляется число байтов (дляString/FixedString) или элементов (дляArray).StringилиFixedStringилиArray(T)
String/FixedString x или число элементов в массиве x UInt64
Примеры
Пример для String
Query
Response
Query
Response
Query
Response
Query
Response
Query
Response
notEmpty
Можно оптимизировать, включив настройку
optimize_functions_to_subcolumns. При optimize_functions_to_subcolumns = 1 функция читает только подстолбец size0 вместо чтения и обработки всего столбца типа Array. Запрос SELECT notEmpty(arr) FROM table преобразуется в SELECT arr.size0 != 0 FROM TABLE.arr— входной массив.Array(T)
1 для непустого массива и 0 — для пустого массива UInt8
Примеры
Пример использования
Query
Response
range
start до end - 1 с шагом step.
Поддерживаются следующие типы:
-
UInt8/16/32/64 -
Int8/16/32/64] -
Все аргументы
start,end,stepдолжны относиться к одному из поддерживаемых выше типов. Элементы возвращаемого массива будут супертипом аргументов. -
Генерируется исключение, если функция возвращает массив, общая длина которого превышает количество элементов, заданное настройкой
function_range_max_elements_in_block. -
Возвращает
NULL, если любой аргумент имеет тип Nullable(nothing). Генерируется исключение, если любой аргумент имеет значениеNULL(тип Nullable(T)).
start— Необязательный. Первый элемент массива. Обязателен, если используетсяstep. Значение по умолчанию:0. -end— Обязательный. Число, до которого строится массив. -step— Необязательный. Определяет шаг между элементами массива. Значение по умолчанию:1.
start до end - 1 с шагом step. Array(T)
Примеры
Пример использования
Query
Response
replicate
arr, заполненный значением x. Array(T)
Примеры
Пример использования
Query
Response
reverse
Query
Response
Query
Response