Aggregate Functions
| Function Name | Description | Syntax |
|---|---|---|
| count | Counts the number of rows or non-NULL values | count(expr), COUNT(DISTINCT expr), count(), count(*) |
| any(x) | Returns the first encountered value, result is non-deterministic | any(column) |
| anyHeavy(x) | Returns frequently occurring values based on the heavy hitters algorithm. Usually non-deterministic results | anyHeavy(column) |
| anyLast(x) | Returns the last encountered value, result is non-deterministic | anyLast(column) |
| groupBitAnd | Bitwise AND | groupBitAnd(expr) |
| groupBitOr | Bitwise OR | groupBitOr(expr) |
| groupBitXor | Bitwise XOR | groupBitXor(expr) |
| groupBitmap | Cardinality | groupBitmap(expr) |
| min(x) | Finds the minimum value | min(column) |
| max(x) | Finds the maximum value | max(x) |
| argMin(arg, val) | Returns the value of arg in the row with the minimum val | argMin(c1, c2) |
| argMax(arg, val) | Returns the value of arg in the row with the maximum val | argMax(c1, c2) |
| sum(x) | Calculates the sum | sum(x) |
| sumWithOverflow(x) | Calculates the sum, returns an error if overflow occurs | sumWithOverflow(x) |
| sumMap(key, value) | Used for array types, calculates the sum of values for the same key, returns a tuple of two arrays, the first being the sorted keys and the second being the sum of values for the corresponding keys | - |
| skewPop | Calculates skewness | skewPop(expr) |
| skewSamp | Calculates sample skewness | skewSamp(expr) |
| kurtPop | Calculates kurtosis | kurtPop(expr) |
| kurtSamp | Calculates sample kurtosis | kurtSamp(expr) |
| timeSeriesGroupSum(uid, timestamp, value) | Calculates the time-series sum for groups by uid, interpolates missing time points linearly before summation | - |
| timeSeriesGroupRateSum(uid, ts, val) | Calculates the sum of rate changes for time-series groups by uid | - |
| avg(x) | Calculates the average value | - |
| uniq | Calculates the approximate count of distinct values | uniq(x[, ...]) |
| uniqCombined | Calculates the approximate count of distinct values; consumes less memory, offers higher precision than uniq, but slightly worse performance | uniqCombined(HLL_precision)(x[, ...]), uniqCombined(x[, ...]) |
| uniqCombined64 | 64-bit version of uniqCombined, reduces overflow probability | - |
| uniqHLL12 | Calculates the approximate count of distinct values, not recommended. Use uniq, uniqCombined instead | - |
| uniqExact | Calculates the exact count of distinct values | uniqExact(x[, ...]) |
| groupArray(x), groupArray(max_size)(x) | Returns an array of x values, array size can be specified by max_size | - |
| groupArrayInsertAt(value, position) | Inserts value at a specified position in the array | - |
| groupArrayMovingSum | - | - |
| groupArrayMovingAvg | - | - |
| groupUniqArray(x), groupUniqArray(max_size)(x) | - | - |
| quantile | - | - |
| quantileDeterministic | - | - |
| quantileExact | - | - |
| quantileExactWeighted | - | - |
| quantileTiming | - | - |
| quantileTimingWeighted | - | - |
| quantileTDigest | - | - |
| quantileTDigestWeighted | - | - |
| median | - | - |
| quantiles(level1, level2, …)(x) | - | - |
| varSamp(x) | - | - |
| varPop(x) | - | - |
| stddevSamp(x) | - | - |
| stddevPop(x) | - | - |
| topK(N)(x) | - | - |
| topKWeighted | - | - |
| covarSamp(x, y) | - | - |
| covarPop(x, y) | - | - |
| corr(x, y) | - | - |
| categoricalInformationValue | - | - |
| simpleLinearRegression | - | - |
| stochasticLinearRegression | - | - |
| stochasticLogisticRegression | - | - |
| groupBitmapAnd | - | - |
| groupBitmapOr | - | - |
| groupBitmapXor | - | - |