| 页面 | 说明 |
|---|---|
| aggThrow | 此函数可用于测试异常安全性。它会在创建时以指定概率抛出异常。 |
| analysisOfVariance | 提供单因素方差分析 (ANOVA 检验) 的统计检验。它对若干组服从正态分布的观测值进行检验,以确定所有组的均值是否相同。 |
| any | 选择某列中遇到的第一个值。 |
| anyHeavy | 使用 heavy hitters 算法选择一个高频值。如果在查询执行的每个线程中,都有某个值出现次数超过一半,则返回该值。通常,结果是不确定的。 |
| anyLast | 选择某列中遇到的最后一个值。 |
| approx_top_k | 返回指定列中近似最常见的值及其计数组成的数组。 |
| approx_top_sum | 返回指定列中近似最常见的值及其计数组成的数组。 |
| argAndMax | 计算最大 val 值对应的 arg 和 val 值。如果有多行的 val 同为最大值,则返回哪个关联的 arg 和 val 是不确定的。 |
| argAndMin | 计算最小 val 值对应的 arg 和 val 值。如果有多行的 val 同为最小值,则返回哪个关联的 arg 和 val 是不确定的。 |
| argMax | 计算最大 val 值对应的 arg 值。 |
| argMin | 计算最小 val 值对应的 arg 值。如果有多行的 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 | 计算 Cramer’s V,但使用偏差修正。 |
| deltaSum | 对连续行之间的算术差值求和。 |
| deltaSumTimestamp | 累加连续行之间的差值。如果差值为负,则忽略。 |
| distinctDynamicTypes | 计算存储在 Dynamic 列中的不同数据类型列表。 |
| distinctJSONPaths | 计算存储在 JSON 列中的不同路径列表。 |
| distinctJSONPathsAndTypes | 计算存储在 JSON 中的不同路径及其类型列表。 |
| entropy | 计算一列值的 Shannon 熵。 |
| estimateCompressionRatio | 在不进行实际压缩的情况下估算给定列的压缩率。 |
| exponentialMovingAverage | 计算指定时间的值的指数移动平均。 |
| exponentialTimeDecayedAvg | 返回时间序列在时间点 t 的指数平滑加权移动平均值。 |
| exponentialTimeDecayedCount | 返回时间序列在时间索引 t 处的累计指数衰减值。 |
| exponentialTimeDecayedMax | 返回时间索引 t 处计算得到的指数平滑移动平均值与 t-1 处对应值中的较大值。 |
| exponentialTimeDecayedSum | 返回时间序列在时间索引 t 处的指数平滑移动平均值之和。 |
| first_value | 它是 any 的别名,但为兼容窗口函数而引入,因为有时需要处理 NULL 值 (默认情况下,所有 ClickHouse 聚合函数都会忽略 NULL 值) 。 |
| flameGraph | 使用 stacktraces 列表构建 flamegraph 的聚合函数。 |
| groupArray | 创建由参数值组成的数组。值可以按任意 (不确定的) 顺序添加到数组中。 |
| groupArrayArray | 将多个数组聚合为一个由这些数组组成的更大数组。 |
| groupArrayInsertAt | 在数组的指定位置插入一个值。 |
| groupArrayIntersect | 返回给定数组的交集 (即返回所有给定数组中都存在的所有元素) 。 |
| groupArrayLast | 创建由最后几个参数值组成的数组。 |
| groupArrayMovingAvg | 计算输入值的移动平均。 |
| groupArrayMovingSum | 计算输入值的移动和。 |
| groupArraySample | 创建由样本参数值组成的数组。结果数组的大小限制为 max_size 个元素。参数值会被随机选取并添加到数组中。 |
| groupArraySorted | 返回一个按升序排列、包含前 N 项的数组。 |
| groupBitAnd | 对一组数值应用按位 AND。 |
| groupBitmap | 对无符号整数列执行 bitmap 或聚合计算,返回 UInt64 类型的 cardinality;如果添加后缀 -State,则返回 Bitmap object。 |
| groupBitmapAnd | 计算 bitmap 列的 AND,返回 UInt64 类型的 cardinality;如果添加后缀 -State,则返回 Bitmap object。 |
| groupBitmapOr | 计算 bitmap 列的 OR,返回 UInt64 类型的 cardinality;如果添加后缀 -State,则返回 Bitmap object。这等同于 groupBitmapMerge。 |
| groupBitmapXor | 计算 bitmap 列的 XOR,并返回 UInt64 类型的 cardinality;如果使用后缀 -State,则返回 Bitmap object。 |
| groupBitOr | 对一组数值应用按位 OR。 |
| groupBitXor | 对一组数值应用按位 XOR。 |
| groupConcat | 从一组字符串中计算得到一个拼接字符串,可选使用分隔符分隔,也可选限制最大元素数量。 |
| 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 检验。 |
| median | median* 函数是对应 quantile* 函数的别名,用于计算数值数据样本的中位数。 |
| min | 用于计算一组值中最小值的聚合函数。 |
| minMap | 根据 key 数组中指定的键,从 value 数组中计算最小值。 |
| quantile | 计算数值数据序列的近似分位数。 |
| quantileBFloat16 | 计算由 bfloat16 数值组成的样本的近似分位数。 |
| quantileDD | 计算具有相对误差保证的样本的近似分位数。 |
| quantileDeterministic | 计算数值数据序列的近似分位数。 |
| quantileExact Functions | quantileExact、quantileExactLow、quantileExactHigh、quantileExactExclusive、quantileExactInclusive 函数 |
| quantileExactExclusive | 精确计算数值数据序列的分位数。 |
| quantileExactHigh | 与 quantileExact 类似,此函数精确计算数值数据序列的分位数。 |
| quantileExactInclusive | 精确计算数值数据序列的分位数。 |
| quantileExactLow | 与 quantileExact 类似,此函数精确计算数值数据序列的 quantile。 |
| quantileExactWeighted | 精确计算数值数据序列的分位数,并考虑每个元素的权重。 |
| quantileExactWeightedInterpolated | 使用线性插值计算数值数据序列的分位数,并考虑每个元素的权重。 |
| quantileGK | 使用 Greenwald-Khanna 算法计算数值数据序列的分位数。 |
| quantileInterpolatedWeighted | 使用线性插值计算数值数据序列的分位数,并考虑每个元素的权重。 |
| quantilePrometheusHistogram | 使用线性插值计算直方图的分位数。 |
| quantiles Functions | 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 | 该函数根据区间 [min_x, max_x] 内的值 x 及这些值的出现频率 y 绘制频率直方图。 |
| stddevPop | 结果等于 varPop 的平方根。 |
| stddevPopStable | 结果等于 varPop 的平方根。与 stddevPop 不同,此函数使用数值稳定的算法。 |
| stddevSamp | 结果等于 varSamp 的平方根。 |
| stddevSampStable | 结果等于 varSamp 的平方根。与 stddevSamp 不同,此函数使用数值稳定的算法。 |
| stochasticLinearRegression | 此函数实现随机线性回归。它支持学习率、L2 正则化系数和小批量大小等自定义参数,并提供多种权重更新方法 (Adam、简单 SGD、Momentum、Nesterov) 。 |
| stochasticLogisticRegression | 此函数实现随机逻辑回归。它可用于二分类问题,支持与 stochasticLinearRegression 相同的自定义参数,工作方式也相同。 |
| studentTTest | 对来自两个总体的样本应用 Student t 检验。 |
| studentTTestOneSample | 对一个样本和已知总体均值应用单样本 Student t 检验。 |
| sum | 计算总和。仅适用于数值。 |
| sumCount | 计算数值总和并同时统计行数。该函数由 ClickHouse 查询优化器使用:如果一个查询中有多个 sum、count 或 avg 函数,它们可以替换为单个 sumCount 函数,以复用计算结果。通常很少需要显式使用该函数。 |
| sumKahan | 使用 Kahan 补偿求和算法计算数值的总和。 |
| sumMap | 根据 key 数组中指定的键,对一个或多个 value 数组求总和。返回一个由数组组成的元组:先是按排序顺序排列的键,后是对应键求和且不发生溢出的值。 |
| sumMapWithOverflow | 根据 key 数组中指定的键,对 value 数组求总和。返回一个包含两个数组的元组:按排序顺序排列的键,以及对应键求和后的值。与 sumMap 函数不同的是,它在求和时允许溢出。 |
| sumWithOverflow | 计算数值的总和,结果使用与输入参数相同的数据类型。如果总和超过该数据类型的最大值,则按溢出方式计算。 |
| theilsU | theilsU 函数计算 Theils’ U 不确定性系数,这是一个用于衡量表中两列之间关联性的值。 |
| timeSeriesChangesToGrid | 该聚合函数用于在指定网格上计算时间序列数据中类似 PromQL 的 changes 值。 |
| timeSeriesDeltaToGrid | 计算指定网格上时间序列数据的 PromQL 风格 delta 的聚合函数。 |
| timeSeriesDerivToGrid | 计算指定网格上时间序列数据的 PromQL 风格 derivative 的聚合函数。 |
| timeSeriesGroupArray | 按 timestamp 升序对时间序列进行排序。 |
| timeSeriesInstantDeltaToGrid | 计算指定网格上时间序列数据的 PromQL 风格 idelta 的聚合函数。 |
| timeSeriesInstantRateToGrid | 计算指定网格上时间序列数据的 PromQL 风格 irate 的聚合函数。 |
| timeSeriesLastTwoSamples | 用于对时间序列数据重新采样,以执行 PromQL 风格 irate 和 idelta 计算的聚合函数。 |
| timeSeriesPredictLinearToGrid | 计算指定网格上时间序列数据的 PromQL 风格线性预测的聚合函数。 |
| timeSeriesRateToGrid | 计算指定网格上时间序列数据的 PromQL 风格 rate 的聚合函数。 |
| timeSeriesResampleToGridWithStaleness | 将时间序列数据重新采样到指定网格的聚合函数。 |
| timeSeriesResetsToGrid | 计算指定网格上时间序列数据的 PromQL 风格 resets 的聚合函数。 |
| topK | 返回指定列中近似最常见值组成的数组。结果数组按值的近似出现频率降序排序 (而非按值本身排序) 。 |
| topKWeighted | 返回指定列中近似最常见值组成的数组。结果数组按值的近似出现频率降序排序 (而非按值本身排序) 。此外,还会考虑值的权重。 |
| uniq | 计算参数不同值的近似数量。 |
| uniqCombined | 计算参数不同值的近似数量。 |
| uniqCombined64 | 计算参数不同值的近似数量。它与 uniqCombined 相同,但对所有数据类型都使用 64 位哈希,而不只是对 String 数据类型使用。 |
| uniqExact | 计算参数不同值的精确数量。 |
| uniqHLL12 | 使用 HyperLogLog 算法计算参数不同值的近似数量。 |
| uniqTheta | 使用 Theta Sketch Framework 计算参数不同值的近似数量。 |
| varPop | 计算总体方差。 |
| varPopStable | 返回总体方差。与 varPop 不同,此函数使用数值稳定的算法。它运行较慢,但计算误差更低。 |
| varSamp | 计算数据集的样本方差。 |
| varSampStable | 计算数据集的样本方差。与 varSamp 不同,此函数使用数值稳定的算法。它运行较慢,但计算误差更低。 |
| welchTTest | 对来自两个总体的样本应用 Welch’s t 检验。 |
聚合函数
聚合函数页面,包含完整的聚合函数列表
ClickHouse 支持所有标准 SQL 聚合函数 (sum、avg、min、max、count) ,以及各种其他聚合函数。
最后修改于 2026年6月10日