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

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

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-столбце.
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Выполняет bitmap- или агрегатные вычисления по беззнаковому целочисленному столбцу, возвращает кардинальность множества в виде значения типа UInt64; при добавлении суффикса -State возвращает bitmap-объект
groupBitmapAndВычисляет логическое И по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа.
groupBitmapOrВычисляет логическое ИЛИ по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа. Эквивалентна функции groupBitmapMerge.
groupBitmapXorВыполняет побитовую операцию XOR над bitmap-столбцом, возвращает кардинальность множества в виде значения типа UInt64; при использовании с суффиксом -State возвращает bitmap-объект
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‑критерий Уэлча к выборкам из двух генеральных совокупностей.