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

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

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

PageDescription
aggThrowЭта функция может быть использована для проверки безопасности исключений. Она выбросит исключение при создании с указанной вероятностью.
analysisOfVarianceПредоставляет статистический тест для одностороннего анализа вариации (тест ANOVA). Это тест для нескольких групп нормально распределенных наблюдений, чтобы выяснить, имеют ли все группы одинаковое среднее.
anyВыбирает первое найденное значение колонки.
anyHeavyВыбирает часто встречающееся значение, используя алгоритм heavy hitters. Если есть значение, которое встречается более чем в половине случаев в каждом из потоков выполнения запроса, это значение возвращается. Обычно результат является недетерминированным.
anyLastВыбирает последнее найденное значение колонки.
approx_top_kВозвращает массив примерно самых частых значений и их количества в указанной колонке.
approx_top_sumВозвращает массив примерно самых частых значений и их количества в указанной колонке.
argMaxВычисляет значение arg для максимального значения val.
argMinВычисляет значение arg для минимального значения val. Если есть несколько строк с одинаковым значением val, которое является максимальным, какое из соответствующих значений arg будет возвращено, недетерминировано.
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Вычисляет Cramer's V, но использует коррекцию смещения.
deltaSumСуммирует арифметическую разницу между последовательными строками.
deltaSumTimestampДобавляет разницу между последовательными строками. Если разница отрицательная, она игнорируется.
entropyВычисляет энтропию Шеннона для колонки значений.
estimateCompressionRatioОценивает коэффициент сжатия заданной колонки без ее сжатия.
exponentialMovingAverageВычисляет экспоненциальное скользящее среднее значений за определённый период.
exponentialTimeDecayedAvgВозвращает экспоненциально сглаженное взвешенное скользящее среднее значений временного ряда в момент t.
exponentialTimeDecayedCountВозвращает кумулятивное экспоненциальное затухание по временной серии в индексе t.
exponentialTimeDecayedMaxВозвращает максимум вычисленного экспоненциально сглаженного скользящего среднего в индексе t, с которым сравнивают значение в t-1.
exponentialTimeDecayedSumВозвращает сумму экспоненциально сглаженных значений скользящего среднего временного ряда в индексе t.
first_valueЭто псевдоним для any, но он был введён для совместимости с оконными функциями, где иногда необходимо обрабатывать значения NULL (по умолчанию все агрегатные функции ClickHouse игнорируют значения NULL).
flameGraphАгрегатная функция, которая строит flamegraph, используя список стековых трассировок.
groupArrayСоздаёт массив значений аргументов. Значения могут добавляться в массив в любом (недетерминированном) порядке.
groupArrayInsertAtВставляет значение в массив по заданной позиции.
groupArrayIntersectВозвращает пересечение заданных массивов (возвращает все элементы массивов, которые содержатся во всех заданных массивах).
groupArrayLastСоздаёт массив последних значений аргументов.
groupArrayMovingSumВычисляет скользящую сумму входных значений.
groupArrayMovingAvgВычисляет скользящее среднее входных значений.
groupArraySampleСоздаёт массив выборочных значений аргументов. Размер результирующего массива ограничен max_size элементами. Значения аргументов выбираются и добавляются в массив случайным образом.
timeSeriesGroupArrayСортирует временные ряды по временным меткам в порядке возрастания.
groupArraySortedВозвращает массив с первыми N элементами в порядке возрастания.
groupBitAndПрименяет побитовый AND для серии чисел.
groupBitmapБитовая карта или агрегатные вычисления из колонки беззнакового целого, возвращает кардинальность типа UInt64. Если добавить суффикс -State, то возвращает объект битовой карты.
groupBitmapAndВычисляет AND битовой карты, возвращает кардинальность типа UInt64. Если добавить суффикс -State, то возвращает объект битовой карты.
groupBitmapOrВычисляет OR битовой карты, возвращает кардинальность типа UInt64. Если добавить суффикс -State, то возвращает объект битовой карты. Это эквивалентно groupBitmapMerge.
groupBitmapXorВычисляет XOR битовой карты и возвращает кардинальность типа 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Вычисляет приближенную квантиль числовой последовательности.
quantileDDВычисляет приближенную квантиль выборки с гарантией относительной ошибки.
quantileBFloat16Вычисляет приближенную квантиль выборки, состоящей из чисел bfloat16.
quantileDeterministicВычисляет приближенную квантиль числовой последовательности.
quantileExact Functionsфункции quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive
quantileExactWeightedТочно вычисляет квантиль числовой последовательности, учитывая вес каждого элемента.
quantileGKВычисляет квантиль числовой последовательности с использованием алгоритма Гринвальда-Ханны.
quantileExactWeightedInterpolatedВычисляет квантиль числовой последовательности с использованием линейной интерполяции, учитывая вес каждого элемента.
quantileInterpolatedWeightedВычисляет квантиль числовой последовательности с использованием линейной интерполяции, учитывая вес каждого элемента.
quantiles Functionsфункции quantiles, 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. В отличие от этой функции, она использует численно стабильный алгоритм.
stochasticLinearRegressionЭта функция реализует стохастическую линейную регрессию. Она поддерживает пользовательские параметры для скорости обучения, коэффициента L2-регуляризации, размера мини-пакета и имеет несколько методов для обновления весов (Adam, простой SGD, Momentum, Nesterov).
stochasticLogisticRegressionЭта функция реализует стохастическую логистическую регрессию. Она может быть использована для задачи бинарной классификации, поддерживает те же пользовательские параметры, что и stochasticLinearRegression и работает аналогично.
studentTTestПрименяет t-тест Стьюдента к образцам из двух популяций.
sumВычисляет сумму. Работает только для чисел.
studentTTestOneSampleПрименяет однобразный t-тест Стьюдента к образцу и известному среднему по популяции.
sumCountВычисляет сумму чисел и одновременно подсчитывает количество строк. Функция используется оптимизатором запросов ClickHouse: если в запросе несколько функций sum, count или avg, их можно заменить на одну функцию sumCount, чтобы повторно использовать вычисления. Функция редко требуется использовать явно.
sumKahanВычисляет сумму чисел с алгоритмом компенсации суммы Кахана.
sumMapСуммирует один или несколько массивов value в соответствии с ключами, указанными в массиве key. Возвращает кортеж массивов: ключи в отсортированном порядке, за которыми следуют суммы значений для соответствующих ключей без переполнения.
sumMapWithOverflowСуммирует массив value в соответствии с ключами, указанными в массиве key. Возвращает кортеж из двух массивов: ключи в отсортированном порядке и суммы значений для соответствующих ключей. Отличие от функции sumMap в том, что она суммирует с переполнением.
sumWithOverflowВычисляет сумму чисел, используя тот же тип данных для результата, как для входных параметров. Если сумма превышает максимальное значение для этого типа данных, она вычисляется с переполнением.
theilsUФункция theilsU вычисляет коэффициент неопределенности Тейла, значение, которое измеряет связь между двумя колонками в таблице.
topKВозвращает массив примерно самых частых значений в указанной колонке. Результирующий массив отсортирован в порядке убывания приблизительной частоты значений (не по самим значениям).
topKWeightedВозвращает массив примерно самых частых значений в указанной колонке. Результирующий массив отсортирован в порядке убывания приблизительной частоты значений (не по самим значениям). Дополнительно учитывается вес значения.
uniqВычисляет приближенное количество различных значений аргумента.
uniqCombinedВычисляет приближенное количество различных значений аргументов.
uniqCombined64Вычисляет приближенное количество различных значений аргументов. Это то же самое, что и uniqCombined, но использует 64-битный хеш для всех типов данных, а не только для типа String.
uniqExactВычисляет точное количество различных значений аргументов.
uniqHLL12Вычисляет приближенное количество различных значений аргументов, используя алгоритм HyperLogLog.
uniqThetaВычисляет приближенное количество различных значений аргументов, используя Theta Sketch Framework.
varPopВычисляет популяционную дисперсию.
varPopStableВозвращает популяционную дисперсию. В отличие от varPop, эта функция использует численно стабильный алгоритм. Она работает медленнее, но обеспечивает меньшую вычислительную ошибку.
varSampВычисляет выборочную дисперсию набора данных.
varSampStableВычисляет выборочную дисперсию набора данных. В отличие от varSamp, эта функция использует численно стабильный алгоритм. Она работает медленнее, но обеспечивает меньшую вычислительную ошибку.
welchTTestПрименяет t-тест Уэлча к образцам из двух популяций.
distinctDynamicTypesВычисляет список различных типов данных, хранящихся в динамической колонке.
distinctJSONPathsВычисляет список различных путей, хранящихся в JSON колонке.
timeSeriesDeltaToGridАгрегатная функция, которая вычисляет дельту в стиле PromQL по временным рядам на заданной сетке.
timeSeriesInstantDeltaToGridАгрегатная функция, которая вычисляет мгновенную дельту в стиле PromQL по временным рядам на заданной сетке.
timeSeriesInstantRateToGridАгрегатная функция, которая вычисляет мгновенную скорость в стиле PromQL по временным рядам на заданной сетке.
timeSeriesLastTwoSamplesАгрегатная функция для повторной выборки временных рядов для вычисления мгновенной скорости и дельты в стиле PromQL.
timeSeriesRateToGridАгрегатная функция, которая вычисляет скорость в стиле PromQL по временным рядам на заданной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция, которая повторно выбирает временные ряды на заданной сетке.
timeSeriesDerivToGridАгрегатная функция, которая вычисляет производную в стиле PromQL по временным рядам на заданной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, которая вычисляет линейное предсказание в стиле PromQL по временным рядам на заданной сетке.
timeSeriesChangesToGridАгрегатная функция, которая вычисляет изменения в стиле PromQL по временным рядам на заданной сетке.
timeSeriesResetsToGridАгрегатная функция, которая вычисляет сбросы в стиле PromQL по временным рядам на заданной сетке.
groupConcatВычисляет конкатенированную строку из группы строк, опционально разделённых разделителем, и опционально ограниченную максимальным числом элементов.
quantilePrometheusHistogramВычисляет квантиль гистограммы с использованием линейной интерполяции.