Aggregate functions return a single value
from values that are in a aggregation relationship (ie a set)
This values are also known as summary because they try to summarize / describe a set of data
You compute generally over additive numeric data grouped by class attribute
Mutative accumulation for a sum
int sum = 0;
for (int x : numbers) {
sum += x;
}
They are implemented as reduction operation
Some operations like AVG are not partitionable. The computation can't therefore happens in parallel.
It is not valid to compute them on partitioned data because they are not commutative and associative.
You can still compute partial aggregates by transforming the non-commutative and associative function by commutative and associative function and, then roll them up.
Example: if:
See Parallel Programming - (Function|Operation)