Mysql
 sql >> Base de données >  >> RDS >> Mysql

renvoie la moyenne du nombre d'enregistrements après une instruction group by

Voici la réponse .

Dans votre cas, en utilisant la définition de table fournie :

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