Model
|> order_by([o], desc: fragment("date(?)", o.inserted_at))
|> group_by([o], fragment("date(?)", o.inserted_at))
|> select([o], %{fragment("date(?)", o.inserted_at) => sum(o.amount)})
|> Repo.paginate(Keyword.merge(opts, sort_direction: :desc, cursor_fields: [:inserted_at]))