As an application developer, a very common interface to build is filtering user interfaces. There are a few types of aggregation that would be very useful to us!
#1 Unique value aggregation
In order to allow for effective filtering, aggregating a field by all its unique values is vital for this, to enable showing the user all possible options for a certain filter.
Generally the amount of results can be limited to perhaps 1000, but having this paginate (or a higher number of 10000) would be even better! This also allows us in many cases to avoid needing expensive ‘substring queries’ on fields, as doing this in the front end on several thousand strings is trivial.
Not all fields needs this, so if its required to add a `@aggregatable` decorator, then this is fine!
In addition to this, having the amount of each of these values would be useful, to allow us to sort by the most commonly occurring fields.
This is by far the highest priority for our use case!
#2 Count aggregation
Second most important is simply being able to identify the max amount of results a query will give us. This can be up to a certain limit (e.g. 10000), afterwards we can simply display `10000+` in the UI. This is also useful for pagination queries! (This might already be solved if pagination queries have a ‘maxPages` section, if so we can just use that!)
#3 Number aggregation
Finally, being able to SUM (and maybe MAX/AVG) a number value within a query would be very useful for us! This is a lower priority, but would be great!