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

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

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 является недетерминированным.
argAndMinВычисляет значения arg и val для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то выбор того, какая пара связанных значений arg и val будет возвращена, не детерминирован.
argAndMaxВычисляет значения 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 Крамера с учетом смещения (bias-correction).
deltaSumСуммирует арифметическую разность между соседними строками.
deltaSumTimestampДобавляет разницу между соседними строками. Если разница отрицательная, она игнорируется.
entropyВычисляет энтропию Шеннона для столбца значений.
estimateCompressionRatioОценивает коэффициент сжатия указанного столбца без фактического выполнения сжатия.
exponentialMovingAverageВычисляет экспоненциальное скользящее среднее значений за заданный интервал времени.
exponentialTimeDecayedAvgВозвращает экспоненциально сглаженное взвешенное скользящее среднее значений временного ряда в момент времени t.
exponentialTimeDecayedCountВозвращает накопленное экспоненциальное затухание для временного ряда в момент времени с индексом t.
exponentialTimeDecayedMaxВозвращает максимум из значений экспоненциально сглаженного скользящего среднего в момент времени t и в момент t-1.
exponentialTimeDecayedSumВозвращает сумму значений экспоненциально сглаженного скользящего среднего временного ряда в момент времени t.
first_valueЭто псевдоним агрегатной функции any, он был добавлен для совместимости с оконными функциями, где иногда требуется обрабатывать значения NULL (по умолчанию все агрегатные функции ClickHouse игнорируют значения NULL).
flameGraphАгрегатная функция, строящая флеймграф по списку стек-трейсов.
groupArrayСоздает массив из значений аргументов. Значения могут добавляться в массив в любом (произвольном) порядке.
groupArrayInsertAtВставляет значение в массив на указанную позицию.
groupArrayIntersectВозвращает пересечение заданных массивов (все элементы, которые присутствуют во всех этих массивах).
groupArrayLastСоздаёт массив из значений последнего аргумента.
groupArrayMovingSumВычисляет скользящую сумму входных значений.
groupArrayMovingAvgВычисляет скользящее среднее для входных значений.
groupArraySampleСоздаёт массив выборочных значений аргумента. Размер результирующего массива ограничен не более чем max_size элементами. Значения аргумента выбираются случайным образом и добавляются в массив.
timeSeriesGroupArrayСортирует временные ряды по метке времени в порядке возрастания.
groupArraySortedВозвращает массив из первых N элементов в порядке возрастания.
groupBitAndПрименяет операцию побитового AND к последовательности чисел.
groupBitmapБитовые или агрегатные вычисления по столбцу беззнакового целого возвращают мощность множества типа UInt64; при добавлении суффикса -State возвращается объект bitmap.
groupBitmapAndВычисляет пересечение (AND) значений столбца Bitmap и возвращает его кардинальность типа UInt64; при добавлении суффикса -State возвращает объект Bitmap.
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функции 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-критерий Стьюдента к выборкам из двух генеральных совокупностей.
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Агрегатная функция, вычисляющая idelta, аналогичный PromQL, для данных временных рядов на заданной сетке.
timeSeriesInstantRateToGridАгрегатная функция, вычисляющая PromQL-подобный irate для данных временных рядов на указанной сетке.
timeSeriesLastTwoSamplesАгрегатная функция для ресемплирования данных временных рядов при вычислении irate и idelta как в PromQL
timeSeriesRateToGridАгрегатная функция, вычисляющая PromQL‑подобный rate по данным временных рядов на заданной временной сетке.
timeSeriesResampleToGridWithStalenessАгрегатная функция, выполняющая ресемплинг данных временных рядов на заданную сетку.
timeSeriesDerivToGridАгрегатная функция, вычисляющая производную по данным временных рядов в стиле PromQL на заданной сетке.
timeSeriesPredictLinearToGridАгрегатная функция, вычисляющая линейный прогноз в стиле PromQL по данным временных рядов на заданной временной сетке.
timeSeriesChangesToGridАгрегатная функция, вычисляющая изменения по данным временных рядов в стиле PromQL на заданной временной сетке.
timeSeriesResetsToGridАгрегатная функция, вычисляющая сбросы счётчиков в стиле PromQL по данным временных рядов на заданной сетке.
groupConcatВычисляет объединённую строку из группы строк, при необходимости разделённых указанным разделителем и, опционально, ограниченных максимальным количеством элементов.
quantilePrometheusHistogramВычисляет квантиль гистограммы с использованием линейной интерполяции.