聚合函数
ClickHouse 支持所有标准 SQL 聚合函数 (sum, avg, min, max, count),以及其他多种聚合函数。
页面 | 描述 |
---|---|
intervalLengthSum | 计算所有范围(数值轴上的段)联合的总长度。 |
median | median* 函数是对应 quantile* 函数的别名。它们计算数值数据样本的中位数。 |
welchTTest | 对两个总体的样本应用 Welch 的 t 检验。 |
groupArrayMovingSum | 计算输入值的移动和。 |
groupBitmapAnd | 计算位图列的 AND,返回类型为 UInt64 的基数,如果添加后缀 -State,则返回一个位图对象。 |
topKWeighted | 返回指定列中大约最常见值的数组。结果数组按值的近似频率按降序排列(而不是按值本身)。此外,还考虑了该值的权重。 |
distinctJSONPaths | 计算在 JSON 列中存储的不同路径的列表。 |
kolmogorovSmirnovTest | 对两个总体的样本应用 Kolmogorov-Smirnov 检验。 |
quantileExactWeightedInterpolated | 使用线性插值计算数值数据序列的分位数,同时考虑每个元素的权重。 |
largestTriangleThreeBuckets | 对输入数据应用最大三角形三桶算法。 |
approx_top_sum | 返回指定列中大约最常见值及其计数的数组。 |
covarSamp | 计算 Σ((x - x̅)(y - y̅)) / (n - 1) 的值 |
groupBitmapOr | 计算位图列的 OR,返回类型为 UInt64 的基数,如果添加后缀 -State,则返回一个位图对象。这相当于 groupBitmapMerge 。 |
varSamp | 计算数据集的样本方差。 |
cramersVBiasCorrected | 计算 Cramér 的 V,但使用偏差修正。 |
quantiles Functions | quantiles, quantilesExactExclusive, quantilesExactInclusive, quantilesGK |
anyLast | 选择列中最后遇到的值。 |
corrStable | 计算 Pearson 相关系数,但使用数值稳定的算法。 |
stddevPopStable | 结果等于 varPop 的平方根。与 stddevPop 不同,此函数使用数值稳定的算法。 |
maxIntersections | 聚合函数计算一组区间相互交叉的最大次数(如果所有区间至少交叉一次)。 |
flameGraph | 聚合函数,根据调用堆栈列表构建火焰图。 |
min | 聚合函数计算一组值中的最小值。 |
sumMapWithOverflow | 根据 key 数组中指定的键对 value 数组进行求和。返回两个数组的元组:按排序顺序排列的键,以及对应键的求和值。与 sumMap 函数的不同之处在于,它执行带溢出的求和。 |
uniq | 计算参数的不同值的近似数量。 |
quantileTDigest | 使用 t-digest 算法计算数值数据序列的近似分位数。 |
groupArrayMovingAvg | 计算输入值的移动平均。 |
rankCorr | 计算等级相关系数。 |
covarSampStable | 类似于 covarSamp,但提供较低的计算误差,速度更慢。 |
avgWeighted | 计算加权算术平均数。 |
skewSamp | 计算序列的样本偏度。 |
groupArrayInsertAt | 在指定位置插入值到数组中。 |
array_concat_agg | array_concat_agg 函数的文档 |
entropy | 计算列值的香农熵。 |
uniqTheta | 使用 Theta Sketch 框架计算不同参数值的近似数量。 |
quantileDeterministic | 计算数值数据序列的近似分位数。 |
simpleLinearRegression | 执行简单(单维)线性回归。 |
covarPop | 计算总体协方差 |
groupBitmapXor | 计算位图列的 XOR,并返回类型为 UInt64 的基数,如果与后缀 -State 一起使用,则返回一个位图对象 |
maxMap | 根据 key 数组中指定的键从 value 数组计算最大值。 |
varPopStable | 返回总体方差。与 varPop 不同,此函数使用数值稳定的算法。速度较慢,但提供较低的计算误差。 |
avg | 计算算术平均数。 |
kurtPop | 计算序列的峰度。 |
aggThrow | 此函数可用于测试异常安全性。它将在创建时以指定概率抛出异常。 |
argMin | 计算最小 val 值的 arg 值。如果有多个行的 val 是最大值,则返回的关联 arg 并不是确定的。 |
first_value | 它是 any 的别名,但引入是为了与窗口函数兼容,有时需要处理 NULL 值(默认情况下,所有 ClickHouse 聚合函数忽略 NULL 值)。 |
sumKahan | 使用 Kahan 补偿求和算法计算数字的总和 |
count | 计算行数或非 NULL 值的数量。 |
deltaSumTimestamp | 添加连续行之间的差值。如果差值为负,则忽略它。 |
studentTTest | 对两个总体的样本应用学生 t 检验。 |
sumWithOverflow | 计算数字的总和,结果的数据类型与输入参数相同。如果总和超过该数据类型的最大值,则以溢出方式计算。 |
sum | 计算总和。仅适用于数字。 |
boundingRatio | 聚合函数计算一组值的最左侧和最右侧点之间的斜率。 |
uniqExact | 计算不同参数值的确切数量。 |
exponentialTimeDecayedCount | 返回在时间序列的索引 t 处的累积指数衰减。 |
sumCount | 计算数字总和并同时计算行数。该函数由 ClickHouse 查询优化器使用:如果查询中存在多个 sum 、count 或 avg 函数,则可以替换为单个 sumCount 函数以重用计算。该函数很少需要显式使用。 |
varSampStable | 计算数据集的样本方差。与 varSamp 不同,此函数使用数值稳定的算法。速度较慢,但提供较低的计算误差。 |
topK | 返回指定列中大约最常见值的数组。结果数组按值的近似频率按降序排列(而不是按值本身)。 |
maxIntersectionsPosition | 聚合函数计算 maxIntersections 函数出现的位置。 |
stddevSampStable | 结果等于 varSamp 的平方根。与此函数使用数值稳定的算法。 |
varPop | 计算总体方差。 |
quantileExactWeighted | 精确计算数值数据序列的分位数,考虑每个元素的权重。 |
covarPopMatrix | 返回 N 个变量的总体协方差矩阵。 |
sparkbar | 该函数绘制值 x 的频率直方图和这些值在区间 [min_x, max_x] 上的重复率 y 。 |
contingency | contingency 函数计算应急系数,这是一个测量表中两个列之间关联的值。计算类似于 cramersV 函数,但在平方根中使用不同的分母。 |
stochasticLinearRegression | 此函数实现随机线性回归。它支持学习率、L2 正则化系数、迷你批次大小的自定义参数,并有几种更新权重的方法(Adam、简单 SGD、动量、Nesterov)。 |
analysisOfVariance | 提供单因素方差分析(ANOVA)测试的统计测试。它是在多个组的正态分布观察上进行的测试,以找出所有组是否具有相同的均值。 |
groupConcat | 计算字符串组的连接字符串,可选择用分隔符分隔,且可选择限制元素的最大数量。 |
exponentialTimeDecayedMax | 返回在时间 t 的指数平滑移动平均和 t-1 的计算最大值。 |
any | 选择列中第一次遇到的值。 |
covarSampMatrix | 返回 N 个变量的样本协方差矩阵。 |
groupArrayLast | 创建最后参数值的数组。 |
singleValueOrNull | 聚合函数 singleValueOrNull 用于实现子查询操作符,例如 x = ALL (SELECT ...) 。它检查数据中是否只有一个唯一的非 NULL 值。 |
theilsU | theilsU 函数计算 Theils 的 U 不确定系数,这是一个测量表中两个列之间协会的值。 |
cramersV | cramersV 函数的结果范围为 0(表示变量之间没有关联)到 1,并且只有当每个值完全由其他值确定时才可达到 1。它可以被视为两个变量之间的关联与其最大可能变异的百分比。 |
last_value | 选择最后遇到的值,类似于 anyLast ,但可以接受 NULL。 |
quantileTiming | 以确定的精度计算数值数据序列的分位数。 |
groupBitmap | 从无符号整数列中进行位图或聚合计算,返回类型为 UInt64 的基数,如果添加后缀 -State,则返回一个位图对象 |
minMap | 根据 key 数组中指定的键从 value 数组计算最小值。 |
exponentialTimeDecayedAvg | 返回在时间点 t 的时间序列值的指数平滑加权移动平均。 |
skewPop | 计算序列的偏度。 |
mannWhitneyUTest | 对两个总体的样本应用曼-惠特尼排名检验。 |
quantileGK | 使用 Greenwald-Khanna 算法计算数值数据序列的分位数。 |
groupArrayIntersect | 返回给定数组的交集(返回所有在给定数组中存在的元素)。 |
estimateCompressionRatio | 估计给定列的压缩比,而不进行压缩。 |
groupArraySample | 创建样本参数值的数组。结果数组的大小限制为 max_size 元素。随机选择和添加参数值到数组中。 |
stddevSamp | 结果等于 varSamp 的平方根 |
quantile | 计算数值数据序列的近似分位数。 |
groupArray | 创建参数值的数组。值可以以任意(不确定)顺序添加到数组中。 |
exponentialTimeDecayedSum | 返回在时间序列的索引 t 处的指数平滑移动平均值的总和。 |
categoricalInformationValue | 计算每个类别的值 (P(tag = 1) - P(tag = 0))(log(P(tag = 1)) - log(P(tag = 0))) 。 |
corr | 计算 Pearson 相关系数。 |
approx_top_k | 返回指定列中大约最常见值及其计数的数组。 |
corrMatrix | 计算 N 个变量的相关矩阵。 |
quantileDD | 计算具有相对误差保证的样本的近似分位数。 |
anyHeavy | 使用重击算法选择频繁出现的值。如果在每个查询执行线程中,有一个值的出现次数超过一半,则返回该值。通常,结果是非确定性的。 |
quantileBFloat16 | 计算由 bfloat16 数字组成的样本的近似分位数。 |
max | 聚合函数计算一组值中的最大值。 |
groupBitXor | 对一系列数字应用按位 XOR 。 |
quantileTimingWeighted | 以确定的精度根据每个序列成员的权重计算数值数据序列的分位数。 |
quantileInterpolatedWeighted | 使用线性插值计算数值数据序列的分位数,同时考虑每个元素的权重。 |
stddevPop | 结果等于 varPop 的平方根。 |
uniqCombined | 计算不同参数值的近似数量。 |
covarPopStable | 计算总体协方差的值 |
argMax | 计算最大 val 值的 arg 值。 |
groupBitOr | 对一系列数字应用按位 OR 。 |
quantileTDigestWeighted | 使用 t-digest 算法计算数值数据序列的近似分位数。 |
distinctDynamicTypes | 计算存储在动态列中的不同数据类型的列表。 |
sumMap | 根据 key 数组中指定的键对 value 数组进行求和。返回两个数组的元组:按排序顺序排列的键,以及对应键的求和值且没有溢出。 |
kurtSamp | 计算序列的样本峰度。 |
stochasticLogisticRegression | 此函数实现随机逻辑回归。它可以用于二元分类问题,支持与 stochasticLinearRegression 相同的自定义参数,并以相同的方式工作。 |
exponentialMovingAverage | 计算在确定时间内值的指数移动平均。 |
uniqCombined64 | 计算不同参数值的近似数量。与 uniqCombined 相同,但对所有数据类型使用 64 位哈希,而不仅仅是 String 数据类型。 |
meanZTest | 对两个总体的样本应用均值 z 检验。 |
uniqHLL12 | 使用 HyperLogLog 算法计算不同参数值的近似数量。 |
groupArrayArray | 将数组聚合成一个较大的数组。 |
groupUniqArray | 从不同的参数值创建数组。 |
groupBitAnd | 对一系列数字应用按位 AND 。 |
deltaSum | 对连续行之间的算术差进行求和。 |
groupArraySorted | 返回前 N 个项目按升序排列的数组。 |
quantileExact Functions | quantileExact, quantileExactLow, quantileExactHigh, quantileExactExclusive, quantileExactInclusive 函数 |