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

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

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, введённый для совместимости с оконными функциями, в которых иногда требуется обрабатывать значения 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 над bitmap-столбцом, возвращает мощность результирующего множества типа UInt64; при использовании суффикса -State возвращает объект bitmap.
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 Тейла (Theils' 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Агрегатная функция, вычисляющая idelta, аналогичный PromQL, по временным рядам на заданной сетке.
timeSeriesInstantRateToGridАгрегирующая функция, вычисляющая PromQL-подобный irate по данным временных рядов на заданной сетке.
timeSeriesLastTwoSamplesАгрегатная функция ресемплирования временных рядов для вычисления irate и idelta в стиле PromQL
timeSeriesRateToGridАгрегирующая функция, вычисляющая PromQL‑подобный rate по временным рядам на заданной временной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция, которая перерассчитывает данные временных рядов по заданной сетке.
timeSeriesDerivToGridАгрегатная функция, вычисляющая производную в стиле PromQL по данным временных рядов на заданной временной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая линейный прогноз, аналогичный PromQL, по данным временных рядов на заданной сетке.
timeSeriesChangesToGridАгрегирующая функция, вычисляющая изменения, аналогичные PromQL, во временных рядах данных на заданной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая сбросы в стиле PromQL по данным временных рядов на заданной сетке.
groupConcatВычисляет строку, полученную конкатенацией группы строк, с необязательным разделителем между ними и необязательным ограничением на максимальное количество элементов.
quantilePrometheusHistogramВычисляет квантиль по гистограмме с использованием линейной интерполяции.