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

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

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 (значение 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Агрегатная функция, которая строит flamegraph на основе списка трассировок стека.
groupArrayСоздаёт массив значений аргументов. Значения могут добавляться в массив в произвольном порядке.
groupArrayInsertAtВставляет значение в массив на указанную позицию.
groupArrayIntersectВозвращает пересечение указанных массивов (все элементы, которые присутствуют во всех указанных массивах).
groupArrayLastСоздает массив из последних значений переданного аргумента.
groupArrayMovingAvgВычисляет скользящее среднее значений на входе.
groupArrayMovingSumВычисляет скользящую сумму входных значений.
groupArraySampleСоздаёт массив выборочных значений аргументов. Размер результирующего массива составляет не более max_size элементов. Значения аргументов выбираются и добавляются в массив случайным образом.
timeSeriesGroupArrayСортирует временные ряды по временной метке в порядке возрастания.
groupArraySortedВозвращает массив с первыми N элементами в порядке возрастания.
groupBitAndВыполняет побитовую операцию AND над последовательностью чисел.
groupBitmapBitmap- или агрегирующие вычисления по беззнаковому целочисленному столбцу возвращают кардинальность типа UInt64; если добавить суффикс -State, возвращается объект bitmap
groupBitmapAndВычисляет операцию AND для битмапового столбца и возвращает мощность множества в виде значения типа UInt64; при добавлении суффикса -State возвращает объект битмапа.
groupBitmapOrВычисляет побитовое OR битмап-столбца и возвращает мощность множества типа UInt64; если добавить суффикс -State, функция возвращает объект битмапа. Эквивалентна groupBitmapMerge.
groupBitmapXorВычисляет XOR bitmap-столбца и возвращает кардинальность в виде значения типа UInt64; при использовании с суффиксом -State возвращает объект bitmap
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Вычисляет квантиль последовательности числовых данных с использованием алгоритма Гринвальда–Кханны.
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 (Theil's 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Агрегатная функция, вычисляющая delta в стиле PromQL над данными временных рядов на заданной сетке.
timeSeriesInstantDeltaToGridАгрегирующая функция, вычисляющая PromQL-подобный idelta для данных временных рядов на заданной сетке.
timeSeriesInstantRateToGridАгрегирующая функция, вычисляющая PromQL-подобный irate по временным рядам на указанной сетке.
timeSeriesLastTwoSamplesАгрегатная функция для ресемплирования данных временных рядов для расчёта PromQL-подобных irate и idelta
timeSeriesRateToGridАгрегатная функция, вычисляющая PromQL-подобный rate для данных временных рядов на заданной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция, выполняющая ресемплинг данных временных рядов на заданную сетку.
timeSeriesDerivToGridАгрегатная функция, вычисляющая производную в стиле PromQL по данным временных рядов на заданной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая линейный прогноз в стиле PromQL по данным временных рядов на заданной сетке.
timeSeriesChangesToGridАгрегатная функция, вычисляющая изменения в стиле PromQL по данным временных рядов на заданной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая сбросы в стиле PromQL по данным временных рядов на заданной сетке.
groupConcatВычисляет строку, полученную конкатенацией строк из группы, с необязательным разделителем и необязательным ограничением на максимальное число элементов.
quantilePrometheusHistogramВычисляет квантиль по гистограмме с использованием линейной интерполяции.