Project: QGIS

Version: 2.16.0

Feature: Aggregate support for expressions

QGIS 2.16 adds support for a several types of aggregates to the expression engine. These include:

  1. Aggregates within the current layer, eg sum("passengers") Supports sub expressions (ie sum("passengers"/2) ), group by ( sum("passengers", group_by:="line_segment") ), and optional filters ( sum("passengers", filter:= "station_class" > 3 ) )

  2. Relational aggregates, which calculate an aggregate over all matching child features from a relation, eg relation_aggregate( 'my_relation', 'mean', "some_child_field" )

  3. A summary aggregate function, for calculating aggregates on other layers. Eg aggregate('rail_station_layer','sum',"passengers"). The summary aggregate function supports an optional filter, making it possible to calculate things like: aggregate('rail_stations','sum',"passengers", intersects(@atlas_geometry, $geometry ) ) for calculating the total number of passengers for the stations inside the current atlas feature

In all cases the calculations are cached inside the expression context, so they only need to be calculated once for each set of expression evaluations.

This feature was funded by Canton of Zug, Switzerland

This feature was developed by Nyall Dawson (North Road)