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

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

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 будет возвращено, не определено.
groupArrayArrayОбъединяет массивы в один массив массивов.
argAndMaxВычисляет значения arg и val для максимального значения val. Если существует несколько строк с одинаковым максимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется.
argAndMinВычисляет значения arg и val для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не определено.
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 элементами. Значения аргумента случайным образом выбираются и добавляются в массив.
timeSeriesGroupArrayСортирует временные ряды по метке времени в порядке возрастания.
groupArraySortedВозвращает массив из первых N элементов в порядке возрастания.
groupBitAndПрименяет побитовую операцию AND к последовательности чисел.
groupBitmapВыполняет bitmap- или агрегатные вычисления по беззнаковому целочисленному столбцу, возвращает кардинальность множества в виде значения типа UInt64; при добавлении суффикса -State возвращает bitmap-объект
groupBitmapAndВычисляет логическое И по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа.
groupBitmapOrВыполняет побитовую операцию OR над bitmap-столбцом, возвращает кардинальность множества в виде значения типа UInt64; если добавить суффикс -State, то возвращает bitmap-объект. Эквивалентна функции 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Вычисляет приближённый квантиль последовательности числовых данных.
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. В отличие от stddevSamp, эта функция использует численно устойчивый алгоритм.
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 вычисляет коэффициент неопределённости 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Агрегатная функция для ресемплирования данных временных рядов при вычислении PromQL‑подобных irate и idelta
timeSeriesRateToGridАгрегатная функция, вычисляющая PromQL‑подобный rate для данных временных рядов на заданной временной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция для ресемплирования данных временных рядов по заданной временной сетке.
timeSeriesDerivToGridАгрегатная функция, вычисляющая PromQL‑подобную производную по данным временных рядов на заданной временной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая PromQL‑подобный линейный прогноз для данных временных рядов на заданной сетке.
timeSeriesChangesToGridАгрегатная функция, вычисляющая изменения по данным временных рядов в стиле PromQL на заданной временной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая сбросы в стиле PromQL по данным временных рядов на заданной временной сетке.
groupConcatВычисляет строку, полученную путём конкатенации группы строк, с необязательным разделителем и/или ограничением на максимальное число элементов.
quantilePrometheusHistogramВычисляет квантиль по гистограмме с помощью линейной интерполяции.