Oto odpowiedź .
W Twoim przypadku użyj podanej definicji tabeli:
from sqlalchemy import cast, func
from sqlalchemy.types import TIME, DATE
from sqlalchemy.sql import between
time_from = ... # get filter time maybe using datetime.time()
time_to = ... # idem
counts = session.query(func.count('*').label('count')).\
filter(between(cast(MyClass.created, TIME),
time_from,
time_to)).\
group_by(cast(MyClass.created, DATE))
avg = session.query(func.avg(counts.subquery().columns.count)).scalar()
print avg