Aggregate functions¶
Aggregate functions work in the normal way as expected by database experts.
ClickHouse also supports:
- Parametric aggregate functions, which accept other parameters in addition to columns.
- Combinators, which change the behavior of aggregate functions.
NULL processing¶
During aggregation, all NULL
s are skipped.
Examples:
Consider this table:
┌─x─┬────y─┐ │ 1 │ 2 │ │ 2 │ ᴺᵁᴸᴸ │ │ 3 │ 2 │ │ 3 │ 3 │ │ 3 │ ᴺᵁᴸᴸ │ └───┴──────┘
Let's say you need to total the values in the y
column:
:) SELECT sum(y) FROM t_null_big SELECT sum(y) FROM t_null_big ┌─sum(y)─┐ │ 7 │ └────────┘ 1 rows in set. Elapsed: 0.002 sec.
The sum
function interprets NULL
as 0
. In particular, this means that if the function receives input of a selection where all the values are NULL
, then the result will be 0
, not NULL
.
Now you can use the groupArray
function to create an array from the y
column:
:) SELECT groupArray(y) FROM t_null_big SELECT groupArray(y) FROM t_null_big ┌─groupArray(y)─┐ │ [2,2,3] │ └───────────────┘ 1 rows in set. Elapsed: 0.002 sec.
groupArray
does not include NULL
in the resulting array.