Перейти к основному содержимому
Перейти к основному содержимому

Агрегатные функции

ClickHouse поддерживает все стандартные агрегатные функции SQL (sum, avg, min, max, count), а также широкий набор других агрегатных функций.

СтраницаОписание
aggThrowЭта функция может использоваться для проверки устойчивости к исключениям. При создании она будет выбрасывать исключение с указанной вероятностью.
analysisOfVarianceПредоставляет статистический критерий для однофакторного дисперсионного анализа (ANOVA‑тест). Применяется для нескольких групп нормально распределённых наблюдений, чтобы проверить, равны ли средние значения во всех группах.
anyВозвращает первое встретившееся значение столбца.
anyHeavyВозвращает часто встречающееся значение с помощью алгоритма «heavy hitters». Если существует значение, которое в каждом потоке выполнения запроса встречается более чем в половине случаев, возвращается именно оно. Как правило, результат недетерминирован.
anyLastВыбирает последнее встреченное значение в столбце.
approx_top_kВозвращает массив приблизительно наиболее частых значений и количества их вхождений в указанном столбце.
approx_top_sumВозвращает массив приблизительно наиболее частых значений и количества их вхождений в указанном столбце.
argAndMaxВычисляет значения arg и val для максимального значения val. Если существует несколько строк с одинаковым максимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется.
argAndMinВычисляет значения arg и val для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется.
argMaxВычисляет значение arg для максимального значения val.
argMinВычисляет значение arg, соответствующее минимальному значению val. Если существует несколько строк с одинаковым максимальным значением val, то, какое именно из соответствующих значений arg будет возвращено, не определено.
avgВычисляет среднее арифметическое.
avgWeightedВычисляет взвешенное арифметическое среднее.
boundingRatioАгрегатная функция, вычисляющая наклон между крайней левой и крайней правой точками в группе значений.
categoricalInformationValueВычисляет значение (P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0))) для каждой категории.
contingencyФункция contingency вычисляет коэффициент сопряжённости — значение, которое измеряет степень связи между двумя столбцами в таблице. Вычисление аналогично функции cramersV, но использует другой знаменатель в подкоренном выражении.
corrВычисляет коэффициент корреляции Пирсона.
corrMatrixВычисляет матрицу корреляции по N переменным.
corrStableВычисляет коэффициент корреляции Пирсона, но использует численно устойчивый алгоритм.
countСчитает количество строк или значений, отличных от NULL.
covarPopВычисляет ковариацию генеральной совокупности
covarPopMatrixВозвращает матрицу ковариации генеральной совокупности для N переменных.
covarPopStableВычисляет ковариацию генеральной совокупности
covarSampВычисляет значение выражения Σ((x - x̅)(y - y̅)) / (n - 1)
covarSampMatrixВозвращает матрицу выборочной ковариации для N переменных.
covarSampStableАналогична covarSamp, работает медленнее, но даёт меньшую вычислительную погрешность.
cramersVРезультат функции cramersV лежит в диапазоне от 0 (соответствует отсутствию связи между переменными) до 1 и может достигать 1 только в том случае, если каждое значение полностью определяется другим. Эту величину можно рассматривать как меру связи между двумя переменными, выраженную в процентах от их максимально возможной вариации.
cramersVBiasCorrectedВычисляет V Крамера с коррекцией смещения.
deltaSumСуммирует арифметические разности между соседними строками.
deltaSumTimestampСуммирует разности между последовательными строками. Если разность отрицательная, она игнорируется.
distinctDynamicTypesВычисляет список уникальных типов данных, хранящихся в столбце Dynamic.
distinctJSONPathsВычисляет список уникальных путей, хранящихся в JSON-столбце.
distinctJSONPathsAndTypesВычисляет список уникальных путей и соответствующих типов, хранящихся в JSON
entropyВычисляет энтропию Шеннона для столбца значений.
estimateCompressionRatioОценивает коэффициент сжатия для заданного столбца, не выполняя его сжатие.
exponentialMovingAverageВычисляет экспоненциальное скользящее среднее значений за заданный интервал времени.
exponentialTimeDecayedAvgВозвращает экспоненциально сглаженное взвешенное скользящее среднее значений временного ряда в момент времени t.
exponentialTimeDecayedCountВозвращает накопленное экспоненциальное затухание по временному ряду в момент времени с индексом t.
exponentialTimeDecayedMaxВозвращает максимум из значений вычисленного экспоненциально сглаженного скользящего среднего в моменты времени с индексами t и t-1.
exponentialTimeDecayedSumВозвращает сумму значений экспоненциально сглаженного скользящего среднего временного ряда в момент времени с индексом t.
first_valueЭто псевдоним функции any; он был добавлен для совместимости с оконными функциями, где иногда требуется обрабатывать значения NULL (по умолчанию все агрегатные функции ClickHouse игнорируют значения NULL).
flameGraphАгрегатная функция, строящая флеймграф на основе списка стек-трассировок.
groupArrayСоздаёт массив значений аргументов. Значения могут добавляться в массив в произвольном (неопределённом) порядке.
groupArrayArrayАгрегирует массивы в один массив массивов.
groupArrayInsertAtВставляет значение в массив в указанную позицию.
groupArrayIntersectВозвращает пересечение заданных массивов (все элементы массивов, которые присутствуют во всех заданных массивах).
groupArrayLastСоздаёт массив из последних значений аргумента.
groupArrayMovingAvgВычисляет скользящее среднее входных значений.
groupArrayMovingSumВычисляет скользящую сумму входных значений.
groupArraySampleСоздаёт массив выборочно отобранных значений аргумента. Размер результирующего массива ограничен max_size элементами. Значения аргумента выбираются и добавляются в массив случайным образом.
groupArraySortedВозвращает массив из первых N элементов в порядке возрастания.
groupBitAndПрименяет побитовую операцию AND к последовательности чисел.
groupBitmapВыполняет битмап- или агрегатные вычисления по беззнаковому целочисленному столбцу, возвращает кардинальность множества в виде значения типа UInt64; при добавлении суффикса -State возвращает объект битмапа
groupBitmapAndВычисляет логическое И по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа.
groupBitmapOrВычисляет логическое ИЛИ по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа. Эквивалентна функции groupBitmapMerge.
groupBitmapXorВычисляет логическое XOR по битмап-столбцу и возвращает кардинальность типа UInt64; при использовании с суффиксом -State возвращает объект битмапа
groupBitOrПрименяет побитовую операцию OR к последовательности чисел.
groupBitXorПрименяет побитовую операцию XOR к последовательности чисел.
groupConcatВычисляет строку, полученную конкатенацией группы строк, при необходимости разделённых заданным разделителем и/или ограниченных максимальным количеством элементов.
groupUniqArrayСоздаёт массив из различных значений аргумента.
intervalLengthSumВычисляет общую длину объединения всех интервалов (отрезков на числовой оси).
kolmogorovSmirnovTestПрименяет критерий Колмогорова–Смирнова к выборкам из двух генеральных совокупностей.
kurtPopВычисляет эксцесс для последовательности.
kurtSampВычисляет выборочный эксцесс для последовательности.
largestTriangleThreeBucketsПрименяет алгоритм Largest-Triangle-Three-Buckets к входным данным.
last_valueВыбирает последнее встретившееся значение, аналогично anyLast, но может принимать значение NULL.
mannWhitneyUTestПрименяет ранговый U‑критерий Манна–Уитни к выборкам из двух генеральных совокупностей.
maxАгрегатная функция, вычисляющая максимум по группе значений.
maxIntersectionsАгрегатная функция, вычисляющая максимальное число одновременных пересечений интервалов в группе (при условии, что все интервалы хотя бы один раз пересекаются друг с другом).
maxIntersectionsPositionАгрегатная функция, вычисляющая позиции, в которых достигается максимум пересечений, рассчитываемый функцией maxIntersections.
maxMapВычисляет максимальное значение в массиве value в соответствии с ключами, указанными в массиве key.
meanZTestПрименяет z‑критерий для сравнения средних по выборкам из двух генеральных совокупностей.
medianФункции median* являются псевдонимами соответствующих функций quantile*. Они вычисляют медиану числовой выборки.
minАгрегатная функция, вычисляющая минимум по группе значений.
minMapВычисляет минимальное значение из массива value по ключам, указанным в массиве key.
quantileВычисляет приближённый квантиль последовательности числовых данных.
quantileBFloat16Вычисляет приближённый квантиль выборки, состоящей из чисел типа bfloat16.
quantileDDВычисляет приближённый квантиль выборки с гарантиями по относительной погрешности.
quantileDeterministicВычисляет приближённый квантиль последовательности числовых данных.
Функции quantileExactФункции quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive
quantileExactExclusiveТочно вычисляет квантиль последовательности числовых данных.
quantileExactHighПодобно quantileExact, точно вычисляет квантиль последовательности числовых данных.
quantileExactInclusiveТочно вычисляет квантиль последовательности числовых данных.
quantileExactLowПодобно quantileExact, эта функция точно вычисляет квантиль последовательности числовых данных.
quantileExactWeightedТочно вычисляет квантиль последовательности числовых данных с учётом веса каждого значения.
quantileExactWeightedInterpolatedВычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента.
quantileGKВычисляет квантиль последовательности числовых данных с использованием алгоритма Гринвальда — Ханны (Greenwald-Khanna).
quantileInterpolatedWeightedВычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента.
quantilePrometheusHistogramВычисляет квантиль по гистограмме с использованием линейной интерполяции.
Функции quantilesquantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK
quantilesExactExclusiveТочно вычисляет квантили для последовательности числовых данных.
quantilesExactInclusiveТочно вычисляет квантили последовательности числовых данных.
quantilesGKquantilesGK работает аналогично quantileGK, но позволяет вычислять квантили сразу для нескольких уровней и возвращает массив.
quantilesTimingWeightedС заданной точностью вычисляет квантиль последовательности числовых данных с учётом веса каждого её элемента.
quantileTDigestВычисляет приближённый квантиль последовательности числовых данных с помощью алгоритма t-digest.
quantileTDigestWeightedВычисляет приближённый квантиль последовательности числовых данных с помощью алгоритма t-digest.
quantileTimingВычисляет квантиль числовой последовательности с заданной точностью.
quantileTimingWeightedВычисляет квантиль числовой последовательности с заданной точностью с учётом веса каждого её элемента.
rankCorrВычисляет коэффициент ранговой корреляции.
simpleLinearRegressionВыполняет простую (одномерную) линейную регрессию.
singleValueOrNullАгрегатная функция singleValueOrNull используется для реализации операторов с подзапросами, таких как x = ALL (SELECT ...). Она проверяет, есть ли в данных ровно одно уникальное значение, отличное от NULL.
skewPopВычисляет коэффициент асимметрии последовательности.
skewSampВычисляет выборочный коэффициент асимметрии последовательности.
sparkbarФункция строит гистограмму частот для значений x и частоты их повторения y на интервале [min_x, max_x].
stddevPopРезультат равен квадратному корню из varPop.
stddevPopStableРезультат равен квадратному корню из varPop. В отличие от stddevPop, эта функция использует численно устойчивый алгоритм.
stddevSampРезультат равен квадратному корню из varSamp
stddevSampStableРезультат равен квадратному корню из varSamp. В отличие от stddevSamp, эта функция использует численно устойчивый алгоритм.
stochasticLinearRegressionЭта функция реализует стохастическую линейную регрессию. Она поддерживает задание пользовательских параметров для скорости обучения, коэффициента L2-регуляризации, размера мини-батча, а также несколько методов обновления весов (Adam, простой SGD, Momentum, Nesterov).
stochasticLogisticRegressionЭта функция реализует стохастическую логистическую регрессию. Она может использоваться для решения задачи бинарной классификации, поддерживает те же пользовательские параметры, что и stochasticLinearRegression, и работает аналогичным образом.
studentTTestПрименяет t-критерий Стьюдента к выборкам из двух генеральных совокупностей.
studentTTestOneSampleПрименяет одновыборочный t-критерий Стьюдента к выборке при известном среднем значении генеральной совокупности.
sumВычисляет сумму. Применима только к числовым значениям.
sumCountВычисляет сумму чисел и одновременно считает количество строк. Функция используется оптимизатором запросов ClickHouse: если в запросе присутствует несколько функций sum, count или avg, их можно заменить одной функцией sumCount, чтобы повторно использовать результаты вычислений. Эту функцию редко требуется вызывать явно.
sumKahanВычисляет сумму чисел с использованием алгоритма компенсированного суммирования Кахана
sumMapСуммирует один или несколько массивов value в соответствии с ключами из массива key. Возвращает кортеж массивов: ключи в отсортированном порядке, далее значения, просуммированные для соответствующих ключей без переполнения.
sumMapWithOverflowСуммирует массив value в соответствии с ключами, указанными в массиве key. Возвращает кортеж из двух массивов: ключи в отсортированном порядке и значения, просуммированные для соответствующих ключей. Отличается от функции sumMap тем, что выполняет суммирование с переполнением.
sumWithOverflowВычисляет сумму чисел, используя для результата тот же тип данных, что и для входных параметров. Если сумма превышает максимальное значение этого типа данных, суммирование выполняется с переполнением.
theilsUФункция theilsU вычисляет коэффициент неопределённости U Тейла — величину, измеряющую степень связи между двумя столбцами в таблице.
timeSeriesChangesToGridАгрегатная функция, вычисляющая PromQL‑подобные изменения по данным временных рядов на заданной временной сетке.
timeSeriesDeltaToGridАгрегатная функция, вычисляющая PromQL‑подобную дельту для данных временных рядов на заданной временной сетке.
timeSeriesDerivToGridАгрегатная функция, вычисляющая PromQL‑подобную производную по данным временных рядов на заданной временной сетке.
timeSeriesGroupArrayСортирует временные ряды по метке времени в порядке возрастания.
timeSeriesInstantDeltaToGridАгрегатная функция, вычисляющая PromQL‑подобный idelta для данных временных рядов на заданной временной сетке.
timeSeriesInstantRateToGridАгрегатная функция, вычисляющая PromQL‑подобный irate для данных временных рядов на заданной сетке.
timeSeriesLastTwoSamplesАгрегатная функция для ресемплирования данных временных рядов при вычислении PromQL‑подобных irate и idelta
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая PromQL‑подобный линейный прогноз по данным временных рядов на заданной временной сетке.
timeSeriesRateToGridАгрегатная функция, вычисляющая PromQL‑подобный rate по данным временных рядов на заданной временной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция для ресемплирования данных временных рядов на заданной временной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая PromQL‑подобные сбросы по данным временных рядов на заданной временной сетке.
topKВозвращает массив приблизительно наиболее часто встречающихся значений в указанном столбце. Полученный массив упорядочен по убыванию их приблизительной частоты (а не по самим значениям).
topKWeightedВозвращает массив приблизительно наиболее часто встречающихся значений в указанном столбце. Полученный массив упорядочен по убыванию их приблизительной частоты (а не по самим значениям). Дополнительно учитывается вес значения.
uniqВычисляет примерное количество уникальных значений аргумента.
uniqCombinedВычисляет приблизительное число различных значений аргумента.
uniqCombined64Вычисляет приблизительное количество различных значений аргумента. Аналогична функции uniqCombined, но использует 64-битный хэш для всех типов данных, а не только для типа String.
uniqExactВычисляет точное количество различных значений аргумента.
uniqHLL12Вычисляет приблизительное количество различных значений аргумента с использованием алгоритма HyperLogLog.
uniqThetaВычисляет приблизительное количество различных значений аргумента с использованием фреймворка Theta Sketch.
varPopВычисляет генеральную дисперсию.
varPopStableВозвращает генеральную дисперсию. В отличие от varPop, эта функция использует численно устойчивый алгоритм. Она работает медленнее, но даёт меньшую вычислительную погрешность.
varSampВычисляет выборочную дисперсию набора данных.
varSampStableВычисляет выборочную дисперсию набора данных. В отличие от varSamp, эта функция использует численно устойчивый алгоритм. Работает медленнее, но обеспечивает меньшую вычислительную погрешность.
welchTTestПрименяет t‑критерий Уэлча к выборкам из двух генеральных совокупностей.