aggregates reduce a set of values to a single value


Aggregates are functions that take an input set and produce an output set, typically with a different cardinality than the input set. Examples of aggregates include sum, count, and average. Each of these takes a set of numbers as an input, and typically produces a single number as output.

Aggregates are called just like other functions in Eve. For instance, the count aggregate is called like so:

employee-count = count[given: employees]

Aggregates don’t always produce a single output value. In some instances, you may want to group your input according to a desired dimension (department, grade, state, country, zip code, etc.) and then aggregate based on those groupings. Extending the example above, we could count the employees in each department:

employee-count = count[given: employees, per: department]

Now, employee-count will have a count for each department, instead of a single count over all departments. For more complete examples, see the doc files for specific aggregates.


Aggregates have similar behavior to the reduce() function in many other langauges.

See Also