Count the number of occurrences for each value in a result set
If a text or JSON field is in the GROUP BY or ORDER BY clause, it must use
the literal
tokenizer.
A terms aggregation counts the number of occurrences for every unique value in a field. For example, the following query
groups the mock_items table by rating, and calculates the number of items for each unique rating.
SELECT rating, pdb.agg('{"value_count": {"field": "id"}}') FROM mock_itemsWHERE id @@@ pdb.all()GROUP BY ratingLIMIT 10;
SELECT rating, pdb.agg('{"value_count": {"field": "id"}}') FROM mock_itemsWHERE id @@@ pdb.all()GROUP BY ratingORDER BY ratingLIMIT 10;
Ordering by the aggregate value is not yet supported.
For performance reasons, we strongly recommend adding a LIMIT to the GROUP BY. Terms aggregations without a LIMIT consume more memory and
are slower to execute. If a query does not have a limit and more than 65000 unique values are found in a field, an error will be returned.