Агрегатные функции
ClickHouse поддерживает все стандартные агрегатные функции SQL (sum, avg, min, max, count), а также широкий набор других агрегатных функций.
| Страница | Описание |
|---|---|
| aggThrow | Эта функция может использоваться для тестирования безопасности работы с исключениями. При создании она будет выбрасывать исключение с указанной вероятностью. |
| analysisOfVariance | Предоставляет статистический критерий однофакторного дисперсионного анализа (ANOVA). Применяется к нескольким группам нормально распределённых наблюдений, чтобы выяснить, одинаковы ли средние значения во всех группах. |
| any | Возвращает первое встретившееся значение столбца. |
| anyHeavy | Возвращает часто встречающееся значение с помощью алгоритма «heavy hitters». Если существует значение, которое в каждом потоке выполнения запроса встречается более чем в половине случаев, возвращается именно оно. Как правило, результат недетерминирован. |
| anyLast | Выбирает последнее встреченное значение в столбце. |
| approx_top_k | Возвращает массив приблизительно наиболее частых значений и количества их вхождений в указанном столбце. |
| approx_top_sum | Возвращает массив приблизительно наиболее частых значений и количества их вхождений в указанном столбце. |
| argAndMax | Вычисляет значения arg и val для максимального значения val. Если существует несколько строк с одинаковым максимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется. |
| argAndMin | Вычисляет значения arg и val для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то какие именно из соответствующих значений arg и val будут возвращены, не гарантируется. |
| argMax | Вычисляет значение arg, соответствующее максимальному значению val. |
| argMin | Вычисляет значение arg, соответствующее минимальному значению val. Если существует несколько строк с одинаковым минимальным значением val, то, какое именно из соответствующих значений arg будет возвращено, не определено. |
| 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 | Суммирует разности между последовательными строками. Отрицательные разности игнорируются. |
| distinctDynamicTypes | Вычисляет список уникальных типов данных, хранящихся в столбце Dynamic. |
| distinctJSONPaths | Вычисляет список уникальных путей, хранящихся в JSON-столбце. |
| entropy | Вычисляет энтропию Шеннона для значений в столбце. |
| estimateCompressionRatio | Оценивает коэффициент сжатия для заданного столбца без фактического сжатия. |
| exponentialMovingAverage | Вычисляет экспоненциальное скользящее среднее значений на заданном интервале времени. |
| exponentialTimeDecayedAvg | Возвращает экспоненциально сглаженное взвешенное скользящее среднее значений временного ряда в момент времени t. |
| exponentialTimeDecayedCount | Возвращает накопленное экспоненциальное затухание по временному ряду в момент времени с индексом t. |
| exponentialTimeDecayedMax | Возвращает максимум между значениями вычисленного экспоненциально сглаженного скользящего среднего в моменты времени с индексами t и t-1. |
| exponentialTimeDecayedSum | Возвращает сумму значений экспоненциально сглаженного скользящего среднего временного ряда в момент времени с индексом t. |
| first_value | Это псевдоним функции any; он был добавлен для совместимости с оконными функциями, где иногда требуется обрабатывать значения NULL (по умолчанию все агрегатные функции ClickHouse игнорируют значения NULL). |
| flameGraph | Агрегатная функция, строящая флеймграф на основе списка трассировок стека. |
| groupArray | Создаёт массив значений аргументов. Значения могут добавляться в массив в произвольном (неопределённом) порядке. |
| groupArrayArray | Объединяет массивы в один большой массив, состоящий из этих массивов. |
| groupArrayInsertAt | Вставляет значение в массив в указанную позицию. |
| groupArrayIntersect | Возвращает пересечение заданных массивов (все элементы, присутствующие во всех массивах). |
| groupArrayLast | Создаёт массив из последних значений аргумента. |
| groupArrayMovingAvg | Вычисляет скользящее среднее входных значений. |
| groupArrayMovingSum | Вычисляет скользящую сумму входных значений. |
| groupArraySample | Создаёт массив выборочно отобранных значений аргумента. Размер результирующего массива ограничен max_size элементами. Значения аргумента выбираются и добавляются в массив случайным образом. |
| groupArraySorted | Возвращает массив из первых N элементов, отсортированный по возрастанию. |
| groupBitAnd | Применяет побитовую операцию AND к последовательности чисел. |
| groupBitmap | Выполняет bitmap- или агрегатные вычисления по беззнаковому целочисленному столбцу, возвращает кардинальность множества в виде значения типа UInt64; при добавлении суффикса -State возвращает bitmap-объект |
| groupBitmapAnd | Вычисляет логическое И по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа. |
| groupBitmapOr | Вычисляет логическое ИЛИ по битмап-столбцу и возвращает кардинальность типа UInt64; при добавлении суффикса -State возвращает объект битмапа. Эквивалентна функции groupBitmapMerge. |
| groupBitmapXor | Выполняет побитовую операцию XOR над bitmap-столбцом, возвращает кардинальность множества в виде значения типа UInt64; при использовании с суффиксом -State возвращает bitmap-объект |
| groupBitOr | Применяет побитовую операцию OR к последовательности чисел. |
| groupBitXor | Применяет побитовую операцию XOR к последовательности чисел. |
| groupConcat | Вычисляет строку, полученную конкатенацией группы строк, при необходимости разделённых заданным разделителем и/или ограниченных по максимальному количеству элементов. |
| groupUniqArray | Создаёт массив из различных значений аргумента. |
| intervalLengthSum | Вычисляет общую длину объединения всех интервалов (отрезков на числовой оси). |
| kolmogorovSmirnovTest | Применяет критерий Колмогорова–Смирнова к выборкам из двух генеральных совокупностей. |
| kurtPop | Вычисляет эксцесс для последовательности. |
| kurtSamp | Вычисляет выборочный эксцесс для последовательности. |
| largestTriangleThreeBuckets | Применяет алгоритм Largest-Triangle-Three-Buckets к входным данным. |
| last_value | Выбирает последнее встретившееся значение, аналогично anyLast, но может принимать значение NULL. |
| mannWhitneyUTest | Применяет ранговый U‑критерий Манна–Уитни к выборкам из двух генеральных совокупностей. |
| 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 |
| quantileExactExclusive | Точно вычисляет квантиль последовательности числовых данных. |
| quantileExactHigh | Подобно quantileExact, эта функция точно вычисляет квантиль последовательности числовых данных. |
| quantileExactInclusive | Точно вычисляет квантиль последовательности числовых данных. |
| quantileExactLow | Подобно quantileExact, точно вычисляет квантиль последовательности числовых данных. |
| quantileExactWeighted | Точно вычисляет квантиль последовательности числовых данных с учётом веса каждого значения. |
| quantileExactWeightedInterpolated | Вычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента. |
| quantileGK | Вычисляет квантиль числовой последовательности данных с использованием алгоритма Гринвальда — Ханны (Greenwald-Khanna). |
| quantileInterpolatedWeighted | Вычисляет квантиль последовательности числовых данных с использованием линейной интерполяции с учётом веса каждого элемента. |
| quantilePrometheusHistogram | Вычисляет квантиль по гистограмме с использованием линейной интерполяции. |
| Функции quantiles | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK |
| quantilesExactExclusive | Точно вычисляет квантили для последовательности числовых данных. |
| quantilesExactInclusive | Точно вычисляет квантили последовательности числовых данных. |
| quantilesGK | quantilesGK работает аналогично quantileGK, но позволяет вычислять квантили сразу для нескольких уровней и возвращает массив. |
| quantilesTimingWeighted | Вычисляет квантиль числовой последовательности с заданной точностью с учётом веса каждого её элемента. |
| 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-критерий Стьюдента к выборкам из двух генеральных совокупностей. |
| studentTTestOneSample | Применяет одновыборочный t-критерий Стьюдента к выборке при известном среднем значении генеральной совокупности. |
| sum | Вычисляет сумму. Применима только к числовым значениям. |
| sumCount | Вычисляет сумму чисел и одновременно считает количество строк. Функция используется оптимизатором запросов ClickHouse: если в запросе присутствует несколько функций sum, count или avg, их можно заменить одной функцией sumCount, чтобы повторно использовать результаты вычислений. Эту функцию редко требуется вызывать явно. |
| sumKahan | Вычисляет сумму чисел по алгоритму компенсированного суммирования Кахана |
| sumMap | Суммирует один или несколько массивов value в соответствии с ключами из массива key. Возвращает кортеж массивов: ключи в отсортированном порядке, далее значения, просуммированные для соответствующих ключей без переполнения. |
| sumMapWithOverflow | Суммирует массив value в соответствии с ключами, указанными в массиве key. Возвращает кортеж из двух массивов: ключи в отсортированном порядке и значения, просуммированные для соответствующих ключей. Отличается от функции sumMap тем, что выполняет суммирование с переполнением. |
| sumWithOverflow | Вычисляет сумму чисел; для результата используется тот же тип данных, что и для входных параметров. Если сумма превышает максимальное значение для этого типа данных, она вычисляется с переполнением. |
| theilsU | Функция theilsU вычисляет коэффициент неопределённости U Тейла — величину, измеряющую степень связи между двумя столбцами в таблице. |
| timeSeriesChangesToGrid | Агрегатная функция, вычисляющая PromQL‑подобные изменения по данным временных рядов на заданной временной сетке. |
| timeSeriesDeltaToGrid | Агрегатная функция, вычисляющая PromQL‑подобную дельту по данным временных рядов на заданной временной сетке. |
| timeSeriesDerivToGrid | Агрегатная функция, вычисляющая PromQL‑подобную производную по данным временных рядов на заданной временной сетке. |
| timeSeriesGroupArray | Сортирует временные ряды по метке времени в порядке возрастания. |
| timeSeriesInstantDeltaToGrid | Агрегатная функция, вычисляющая PromQL‑подобный idelta для данных временных рядов на заданной временной сетке. |
| timeSeriesInstantRateToGrid | Агрегатная функция, вычисляющая PromQL‑подобный irate для данных временных рядов на заданной сетке. |
| timeSeriesLastTwoSamples | Агрегатная функция для ресемплирования данных временных рядов при расчёте PromQL‑подобных irate и idelta |
| timeSeriesPredictLinearToGrid | Агрегатная функция, вычисляющая PromQL‑подобный линейный прогноз по данным временных рядов на заданной временной сетке. |
| timeSeriesRateToGrid | Агрегатная функция, вычисляющая PromQL‑подобный rate по данным временных рядов на заданной временной сетке. |
| timeSeriesResampleToGridWithStaleness | Агрегатная функция для ресемплирования данных временных рядов на заданной временной сетке. |
| timeSeriesResetsToGrid | Агрегатная функция, вычисляющая PromQL‑подобные сбросы по данным временных рядов на заданной временной сетке. |
| topK | Возвращает массив приблизительно наиболее часто встречающихся значений в указанном столбце. Полученный массив упорядочен по убыванию их приблизительной частоты (а не по самим значениям). |
| topKWeighted | Возвращает массив приблизительно наиболее часто встречающихся значений в указанном столбце. Полученный массив упорядочен по убыванию их приблизительной частоты (а не по самим значениям). Дополнительно учитывается вес значения. |
| uniq | Вычисляет примерное количество уникальных значений аргумента. |
| uniqCombined | Вычисляет приблизительное число различных значений аргумента. |
| uniqCombined64 | Вычисляет приблизительное количество различных значений аргумента. Аналогична функции uniqCombined, но использует 64-битный хэш для всех типов данных, а не только для типа String. |
| uniqExact | Вычисляет точное количество различных значений аргумента. |
| uniqHLL12 | Вычисляет приблизительное количество различных значений аргумента с использованием алгоритма HyperLogLog. |
| uniqTheta | Вычисляет приблизительное количество различных значений аргумента с использованием фреймворка Theta Sketch. |
| varPop | Вычисляет генеральную дисперсию. |
| varPopStable | Возвращает генеральную дисперсию. В отличие от varPop, эта функция использует численно устойчивый алгоритм. Она работает медленнее, но даёт меньшую вычислительную погрешность. |
| varSamp | Вычисляет выборочную дисперсию набора данных. |
| varSampStable | Вычисляет выборочную дисперсию набора данных. В отличие от varSamp, эта функция использует численно устойчивый алгоритм. Работает медленнее, но обеспечивает меньшую вычислительную погрешность. |
| welchTTest | Применяет t‑критерий Уэлча к выборкам из двух генеральных совокупностей. |