defmodule Ectoo do require Ecto.Query def count(query) do # COUNT("*") would also count NULL values: # http://stackoverflow.com/q/10863936/6962 # TODO: Handle composite primary keys. pk = Ectoo.Utils.primary_key(query) Ecto.Query.from( m in query, select: count(field(m, ^pk)) ) end def max(model, column) do Ecto.Query.from( m in model, select: max(field(m, ^column)) ) end def min(model, column) do Ecto.Query.from( m in model, select: min(field(m, ^column)) ) end def avg(model, column) do Ecto.Query.from( m in model, select: avg(field(m, ^column)) ) end def sum(model, column) do Ecto.Query.from( m in model, select: sum(field(m, ^column)) ) end end