module

Clear::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)

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)

Source
avg(field, x : X.class) forall X

SQL aggregation function "AVG":

  query.avg("field", Int64)
Source
count(type : X.class = Int64) forall X

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

Source
max(field, x : X.class) forall X

SQL aggregation function "MAX":

  query.max("field", Int64)
Source
min(field, x : X.class) forall X

SQL aggregation function "MIN":

  query.min("field", Int64)
Source
sum(field, x : X.class) forall X

SQL aggregation function "SUM":

  query.sum("field", Int64)
Source
sum(field) : Float64

SUM through a field and return a Float64

This function is not safe injection-wise, so beware !.

Source