Lustra::SQL::Query::Aggregate
Instance methods
agg(field, x : X.class) forall X
Call an custom aggregation function, like MEDIAN or other:
query.agg("MEDIAN(age)", Int64)
Note than COUNT, MIN, MAX, SUM and AVG are already conveniently mapped.
This return only one row, and should not be used with group_by (prefer pluck or fetch)
Automatically handles LIMIT/OFFSET by wrapping in a subquery.
Use SQL COUNT over your query, and return this number as a Int64
as count return always a scalar, the usage of COUNT(*) OVER GROUP BY can be done by
using pluck or select
exists?
Check if any records exist matching the query conditions.
Returns true if at least one record exists, false otherwise.
User.query.where { active == true }.exists? # => true/false