Mysql
 sql >> Datenbank >  >> RDS >> Mysql

gibt den Durchschnitt der Anzahl der Datensätze nach einer group by-Anweisung zurück

Hier ist die Antwort .

Verwenden Sie in Ihrem Fall die bereitgestellte Tabellendefinition:

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