Aggregations
This is the official documentation of the agent_ruby
Ruby agent.
An aggregation represents a query to a collection that aggregates on records.
They are simple 3 keys objects:
An
operation
that specifies how the data should be aggregated (Count
,Sum
,Avg
,Max
,Min
)A
field
, that specifies the data that should be aggregatedGroups
, which may be rounded when they are Dates
Supported group rounding operations are Year
, Month
, Week
, Day
, and null
(let the field as it is).
Count records
The simplest possible query is to count records from a collection.
{ "operation": "Count", "field": null, "groups": [] }
Equivalent in SQL: SELECT COUNT(*) FROM books
Average rating
{ "operation": "Average", "field": "rating", "groups": [] }
Equivalent in SQL: SELECT AVG(rating) FROM books
Average rating by author
{ "operation": "Average", "field": "rating", "groups": [{ "field": "author:name" }] }
Equivalent in SQL: SELECT authorName, AVG(rating) FROM books GROUP BY 1
Average rating by author and year
{
"operation": "Average",
"field": "rating",
"groups": [
{ "field": "authorName" },
{ "field": "createdAt", "operation": "Year" }
]
}
Equivalent in SQL: SELECT authorName, TO_YEAR(createdAt), AVG(rating) FROM books GROUP BY 1, 2
Last updated
Was this helpful?