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

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

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

СтраницаОписание
aggThrowЭта функция может использоваться для проверки гарантий безопасности при возникновении исключений. При создании она будет выбрасывать исключение с указанной вероятностью.
analysisOfVarianceПредоставляет статистический тест для однофакторного дисперсионного анализа (тест ANOVA). Это тест для нескольких групп нормально распределённых наблюдений, позволяющий определить, имеют ли все группы одинаковое среднее значение или нет.
anyВозвращает первое встреченное значение в столбце.
anyHeavyВыбирает часто встречающееся значение с использованием алгоритма «heavy hitters». Если существует значение, которое более чем в половине случаев встречается в каждом потоке выполнения запроса, возвращается именно оно. Обычно результат не детерминирован.
anyLastВыбирает последнее встретившееся значение столбца.
approx_top_kВозвращает массив приблизительно наиболее частых значений и количества их вхождений в указанном столбце.
approx_top_sumВозвращает массив приблизительно наиболее часто встречающихся значений и их количеств в указанном столбце.
argMaxВычисляет значение arg, соответствующее максимальному значению val.
argMinВычисляет значение arg для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то то, какое из соответствующих значений arg будет возвращено, не является детерминированным.
argAndMaxВычисляет значения arg и val для максимального значения val. Если существует несколько строк с одинаковым максимальным значением val, то то, какие из соответствующих arg и val будут возвращены, не определено.
argAndMinВычисляет значения arg и val для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется.
groupArrayArrayОбъединяет массивы в один массив массивов.
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Вычисляет разности между соседними строками и суммирует их. Отрицательные разности игнорируются.
entropyВычисляет энтропию Шеннона для столбца значений.
estimateCompressionRatioОценивает коэффициент сжатия для заданного столбца, не выполняя его сжатие.
exponentialMovingAverageВычисляет экспоненциальное скользящее среднее значений за заданный интервал времени.
exponentialTimeDecayedAvgВозвращает экспоненциально сглаженное взвешенное скользящее среднее значений временного ряда в момент времени t.
exponentialTimeDecayedCountВозвращает накопленное экспоненциальное затухание для временного ряда в момент времени с индексом t.
exponentialTimeDecayedMaxВозвращает максимум из значений вычисленного экспоненциально сглаженного скользящего среднего во времени: в момент с индексом t и в момент t-1.
exponentialTimeDecayedSumВозвращает сумму значений экспоненциально сглаженного скользящего среднего временного ряда в момент времени t.
first_valueЭто псевдоним для any, но он был добавлен для совместимости с Window Functions, где иногда требуется обрабатывать значения NULL (по умолчанию все агрегатные функции ClickHouse игнорируют значения NULL).
flameGraphАгрегатная функция, строящая флеймграф по списку трассировок стека.
groupArrayСоздаёт массив значений аргументов. Значения могут добавляться в массив в произвольном (неопределённом) порядке.
groupArrayInsertAtВставляет значение в массив на указанную позицию.
groupArrayIntersectВозвращает пересечение заданных массивов (все элементы, которые присутствуют во всех этих массивах).
groupArrayLastСоздает массив из значений последнего аргумента.
groupArrayMovingAvgВычисляет скользящее среднее для входных значений.
groupArrayMovingSumВычисляет скользящую сумму входных значений.
groupArraySampleСоздает массив примеров значений аргумента. Размер результирующего массива ограничен max_size элементами. Значения аргумента выбираются и добавляются в массив случайным образом.
groupArraySortedВозвращает массив из первых N элементов, упорядоченных по возрастанию.
timeSeriesGroupArrayСортирует временные ряды по метке времени в порядке возрастания.
groupBitAndПрименяет операцию побитового AND к последовательности чисел.
groupBitmapВыполняет bitmap- или агрегатные вычисления по беззнаковому целочисленному столбцу, возвращает мощность множества в виде значения типа UInt64, а при добавлении суффикса -State возвращает объект bitmap
groupBitmapAndВыполняет побитовую операцию AND над bitmap-столбцом, возвращает кардинальность множества в виде значения типа UInt64; если добавить суффикс -State, то возвращает bitmap-объект.
groupBitmapOrВычисляет логическое ИЛИ по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа. Эквивалентна функции groupBitmapMerge.
groupBitmapXorВычисляет XOR битового столбца и возвращает кардинальность (cardinality) типа UInt64; если используется с суффиксом -State, то возвращает объект битовой карты
groupBitOrПрименяет побитовую операцию OR к последовательности чисел.
groupBitXorПрименяет побитовую операцию XOR к последовательности чисел.
groupUniqArrayСоздаёт массив из значений переданных аргументов.
intervalLengthSumВычисляет общую длину объединения всех диапазонов (отрезков на числовой прямой).
kolmogorovSmirnovTestПрименяет критерий Колмогорова–Смирнова к выборкам из двух распределений.
kurtPopВычисляет эксцесс для последовательности.
kurtSampВычисляет выборочный эксцесс для последовательности.
largestTriangleThreeBucketsПрименяет алгоритм «Largest-Triangle-Three-Buckets» к входным данным.
last_valueВыбирает последнее встретившееся значение, аналогично anyLast, но допускает значение NULL.
mannWhitneyUTestПрименяет ранговый критерий Манна — Уитни к выборкам из двух генеральных совокупностей.
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
quantileExactWeightedТочно вычисляет квантиль последовательности числовых данных с учетом веса каждого значения.
quantileGKВычисляет квантиль числовой последовательности данных с использованием алгоритма Гринвальда — Ханны (Greenwald-Khanna).
quantileExactWeightedInterpolatedВычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента.
quantileInterpolatedWeightedВычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента.
Функции quantilesquantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK
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. В отличие от функции varSamp, эта функция использует численно устойчивый алгоритм.
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 Тейла — показатель, характеризующий взаимосвязь между двумя столбцами в таблице.
topKВозвращает массив приблизительно наиболее часто встречающихся значений в указанном столбце. Полученный массив упорядочен по убыванию их приблизительной частоты (а не по самим значениям).
topKWeightedВозвращает массив примерно наиболее часто встречающихся значений в указанном столбце. Полученный массив отсортирован по убыванию примерной частоты значений (а не по самим значениям). При этом учитывается вес значения.
uniqВычисляет примерное количество уникальных значений аргумента.
uniqCombinedВычисляет приблизительное число различных значений аргумента.
uniqCombined64Вычисляет приблизительное количество различных значений аргумента. Аналогична uniqCombined, но использует 64-битный хэш для всех типов данных, а не только для String.
uniqExactВычисляет точное количество различных значений аргумента.
uniqHLL12Вычисляет приблизительное количество различных значений аргумента с использованием алгоритма HyperLogLog.
uniqThetaВычисляет приблизительное количество различных значений аргумента с использованием фреймворка Theta Sketch.
varPopВычисляет генеральную дисперсию.
varPopStableВозвращает генеральную дисперсию. В отличие от varPop, эта функция использует численно устойчивый алгоритм. Она работает медленнее, но даёт меньшую вычислительную погрешность.
varSampВычисляет выборочную дисперсию набора данных.
varSampStableВычисляет выборочную дисперсию набора данных. В отличие от varSamp, эта функция использует численно устойчивый алгоритм. Работает медленнее, но обеспечивает меньшую вычислительную погрешность.
welchTTestПрименяет t‑критерий Уэлча к выборкам из двух совокупностей.
distinctDynamicTypesВычисляет список уникальных типов данных, хранящихся в столбце Dynamic.
distinctJSONPathsВычисляет список уникальных путей, хранящихся в JSON-столбце.
timeSeriesDeltaToGridАгрегатная функция, вычисляющая дельту в стиле PromQL для данных временных рядов на заданной сетке.
timeSeriesInstantDeltaToGridАгрегатная функция, вычисляющая PromQL-подобный idelta для данных временных рядов на заданной сетке.
timeSeriesInstantRateToGridАгрегатная функция, вычисляющая PromQL‑подобный irate для данных временных рядов на заданной временной сетке.
timeSeriesLastTwoSamplesАгрегатная функция для ресемплирования временных рядов при вычислении функций irate и idelta по аналогии с PromQL
timeSeriesRateToGridАгрегирующая функция, вычисляющая PromQL-подобный rate по данным временных рядов на заданной временной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция для ресемплирования данных временных рядов по заданной временной сетке.
timeSeriesDerivToGridАгрегатная функция, вычисляющая производную, аналогичную PromQL, по данным временных рядов на заданной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая линейный прогноз по данным временных рядов в стиле PromQL на заданной сетке.
timeSeriesChangesToGridАгрегатная функция, вычисляющая изменения в данных временных рядов в стиле PromQL на заданной временной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая сбросы в стиле PromQL по данным временных рядов на заданной сетке.
groupConcatВычисляет строку, полученную конкатенацией группы строк, с необязательным разделителем и необязательным ограничением на максимальное число элементов.
quantilePrometheusHistogramВычисляет квантиль по гистограмме с помощью линейной интерполяции.