跳到主要内容
跳到主要内容

聚合函数

ClickHouse 支持所有标准 SQL 聚合函数 (sum, avg, min, max, count),以及广泛的其他聚合函数。

页面描述
aggThrow此函数可用于测试异常安全性。它将在创建时抛出异常,概率由指定。
analysisOfVariance提供单因素方差分析的统计测试(ANOVA 测试)。它是对几组正态分布观察值进行测试,以确定所有组的均值是否相同。
any选择列中首次出现的值。
anyHeavy使用重击算法选择经常出现的值。如果在每个查询执行线程中有一个值出现的次数超过一半,则返回该值。通常,结果是非确定性的。
anyLast选择列中最后出现的值。
approx_top_k返回指定列中大约最频繁值及其计数的数组。
approx_top_sum返回指定列中大约最频繁值及其计数的数组。
argMax计算最大 val 值的 arg 值。
argMin计算最小 val 值的 arg 值。如果有多行具有相同的最大 val,则返回的相关 arg 不具有确定性。
groupArrayArray将数组聚合为一个更大的数组。
avg计算算术平均值。
avgWeighted计算加权算术平均值。
boundingRatio计算值组的最左和最右点之间的斜率的聚合函数。
categoricalInformationValue为每个类别计算 (P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0))) 的值。
contingencycontingency 函数计算应变系数,这是一个衡量表中两个列之间关联的值。计算方式类似于 cramersV 函数,但是在平方根中有不同的分母。
corr计算 Pearson 相关系数。
corrMatrix计算 N 个变量的相关矩阵。
corrStable计算 Pearson 相关系数,但使用数值稳定的算法。
count计算行数或非 NULL 值的数量。
covarPop计算种群协方差。
covarPopMatrix返回 N 个变量的种群协方差矩阵。
covarPopStable计算种群协方差的值。
covarSamp计算 Σ((x - x̅)(y - y̅)) / (n - 1) 的值。
covarSampMatrix返回 N 个变量的样本协方差矩阵。
covarSampStable类似于 covarSamp,但运行速度较慢且提供更低的计算误差。
cramersVcramersV 函数的结果范围从 0(对应于两个变量之间没有关联)到 1,只有当每个值完全由另一个值决定时,才能达到 1。它可以被视为两个变量之间的关联程度,占其最大可能变化的百分比。
cramersVBiasCorrected计算 Cramer's V,但使用偏差校正。
deltaSum求连续行之间的算术差值总和。
deltaSumTimestamp添加连续行的差值。如果差值为负,则被忽略。
entropy计算列值的 Shannon 熵。
estimateCompressionRatio在不压缩的情况下估计给定列的压缩比。
exponentialMovingAverage计算确定时间段内值的指数移动平均。
exponentialTimeDecayedAvg返回时间序列在 t 时刻的指数平滑加权移动平均。
exponentialTimeDecayedCount返回时间序列在时间索引 t 的累积指数衰减。
exponentialTimeDecayedMax返回在时间索引 t 的计算指数平滑移动平均的最大值与在 t-1 的值比较。
exponentialTimeDecayedSum返回时间序列在时间索引 t 的指数平滑移动平均值之和。
first_value是任何值的别名,但引入的原因是与窗口函数的兼容性,有时必须处理 NULL 值(默认情况下,所有 ClickHouse 聚合函数忽略 NULL 值)。
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对来自两个总体的样本应用 Kolmogorov-Smirnov 测试。
kurtPop计算序列的峰度。
kurtSamp计算序列的样本峰度。
largestTriangleThreeBuckets将 Largest-Triangle-Three-Buckets 算法应用于输入数据。
last_value选择最后出现的值,类似于 anyLast,但可以接受 NULL。
mannWhitneyUTest对来自两个总体的样本应用 Mann-Whitney 排名测试。
max聚合函数,计算一组值中的最大值。
maxIntersections聚合函数,计算一组区间相互交叉的最大次数(如果所有区间至少交叉一次)。
maxIntersectionsPosition聚合函数,计算 maxIntersections 函数的出现位置。
maxMap根据 key 数组中指定的键,计算 value 数组中的最大值。
meanZTest对来自两个总体的样本应用均值 Z 测试。
medianmedian* 函数是相应 quantile* 函数的别名。它们计算数值数据样本的中位数。
min聚合函数,计算一组值中的最小值。
minMap根据 key 数组中指定的键,计算 value 数组中的最小值。
quantile计算数值数据序列的近似分位数。
quantileDD计算带有相对误差保证的样本近似分位数。
quantileBFloat16计算由 bfloat16 数字组成的样本的近似分位数。
quantileDeterministic计算数值数据序列的近似分位数。
quantileExact FunctionsquantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive 函数
quantileExactWeighted精确计算数值数据序列的分位数,考虑到每个元素的权重。
quantileGK使用 Greenwald-Khanna 算法计算数值数据序列的分位数。
quantileExactWeightedInterpolated使用线性插值计算数值数据序列的分位数,考虑到每个元素的权重。
quantileInterpolatedWeighted使用线性插值计算数值数据序列的分位数,考虑到每个元素的权重。
quantiles Functionsquantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK
quantileTDigest使用 t-digest 算法计算数值数据序列的近似分位数。
quantileTDigestWeighted使用 t-digest 算法计算数值数据序列的近似分位数。
quantileTiming以确定的精度计算数值数据序列的分位数。
quantileTimingWeighted以确定的精度计算根据每个序列成员权重的数值数据序列的分位数。
rankCorr计算排名相关系数。
simpleLinearRegression执行简单(单维)线性回归。
singleValueOrNull聚合函数 singleValueOrNull 用于实现子查询操作符,例如 x = ALL (SELECT ...)。它检查数据中是否仅存在一个唯一的非 NULL 值。
skewPop计算序列的偏度。
skewSamp计算序列的样本偏度。
sparkbar函数为值 x 绘制频率直方图,以及这些值在区间 [min_x, max_x] 上的重复率 y
stddevPop结果等于 varPop 的平方根。
stddevPopStable结果等于 varPop 的平方根。与 stddevPop 不同,此函数使用数值稳定的算法。
stddevSamp结果等于 varSamp 的平方根。
stddevSampStable结果等于 varSamp 的平方根。与此函数使用数值稳定的算法。运行速度较慢,但提供更低的计算误差。
stochasticLinearRegression此函数实现随机线性回归。支持学习率、L2 正则化系数、迷你批量大小的自定义参数,并具有几种更新权重的方法(Adam、简单的 SGD、动量、Nesterov)。
stochasticLogisticRegression此函数实现随机逻辑回归。可用于二元分类问题,支持与 stochasticLinearRegression 相同的自定义参数,并以相同的方式工作。
studentTTest对两个总体的样本应用学生 t 测试。
sum计算总和。仅对数字有效。
studentTTestOneSample对样本和已知总体均值应用单样本学生 t 测试。
sumCount同时计算数字的总和并计算行数。该函数由 ClickHouse 查询优化器使用:如果查询中有多个 sumcountavg 函数,则可以替换为单个 sumCount 函数以重用计算。该函数很少需要显式使用。
sumKahan使用 Kahan 补偿求和算法计算数字的总和。
sumMap根据 key 数组中指定的键对一个或多个 value 数组进行求和。返回一个元组数组:按排序顺序的键,后跟按对应键求和的值,无溢出。
sumMapWithOverflow根据 key 数组中指定的键对 value 数组进行求和。返回两个数组的元组:按排序顺序的键,以及按对应键求和的值。与 sumMap 函数不同,它在进行求和时允许溢出。
sumWithOverflow计算数字的总和,计算结果与输入参数相同的数据类型。如果总和超过该数据类型的最大值,则会出现溢出计算。
theilsUtheilsU 函数计算 Theils' U 不确定系数,这是一个衡量表中两个列之间关联的值。
topK返回指定列中大约最频繁值的数组。结果数组按值的近似频率降序排列(而不是值本身)。
topKWeighted返回指定列中大约最频繁值的数组。结果数组按值的近似频率降序排列(而不是值本身)。此外,还考虑值的权重。
uniq计算参数的不同值的近似数量。
uniqCombined计算不同参数值的近似数量。
uniqCombined64计算不同参数值的近似数量。它与 uniqCombined 相同,但对所有数据类型使用 64 位哈希,而不仅仅是字符串数据类型。
uniqExact计算不同参数值的确切数量。
uniqHLL12使用 HyperLogLog 算法计算不同参数值的近似数量。
uniqTheta使用 Theta Sketch 框架计算不同参数值的近似数量。
varPop计算种群方差。
varPopStable返回种群方差。与 varPop 不同,此函数使用数值稳定的算法。它运行速度较慢,但提供更低的计算误差。
varSamp计算数据集的样本方差。
varSampStable计算数据集的样本方差。与 varSamp 不同,此函数使用数值稳定的算法。它运行速度较慢,但提供更低的计算误差。
welchTTest对来自两个总体的样本应用 Welch 的 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使用线性插值计算直方图的分位数。