12 Commits

Author SHA1 Message Date
Harrissou Sant-anna
65535f4c2a Allow use of minimum/maximum as alias for min/max aggregate argument in aggregate function 2023-11-27 06:15:57 +10:00
roya0045
70ab8651a0 missing functs and improvements 2022-01-12 10:26:38 -05:00
roya0045
57e25ca19e proposal tags
made with https://gist.github.com/roya0045/eaa19acabe1033569f97b40604b7e6df
2022-01-07 08:33:29 -05:00
Harrissou Sant-anna
1d0749d72d Extend aggregate's concatenator and order_by args description 2020-08-10 08:32:18 +10:00
SrNetoChan
d097adeacd Add groups to function_help files 2020-07-02 15:03:16 +10:00
Andrea Giudiceandrea
fd31c85f45 Fix order_by parameter in relation_aggregate function help 2020-06-01 10:05:19 +10:00
Harrissou Sant-anna
575ecffe30 Add "concatenate_unique" as aggregate parameter
to relation_aggregate function
2019-10-03 13:28:36 +10:00
David Signer
f8d1a02ea7 mentioning array_agg in relation_aggregate 2019-05-28 06:16:22 +10:00
Nyall Dawson
2e5257372b [FEATURE] Add order by support to expression aggregate and concatenation functions
Because certain aggregates and concatenation requires results in
a certain order, this change allows specific control of the order
features are added to the aggregate during an expression evaluation.

E.g.

concatenate("Station",concatenator:=',', order_by:="Station")

will give a comma separated list of station names in alphabetical
order, rather than layer feature order.

Sponsored by SMEC/SJ
2019-05-10 06:23:56 +10:00
stra2da
5048978ee0 Update relation_aggregate 2018-09-11 07:28:59 +10:00
stra2da
7fbc828acb Update relation_aggregate 2018-09-11 07:28:59 +10:00
Nyall Dawson
307aabd66a [FEATURE] Aggregates for expressions
This commit adds a number of different forms of aggregates to
the expression engine.

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.

Sponsored by Kanton of Zug, Switzerland
2016-05-17 10:53:25 +10:00