Как добавить атрибут в столбец модели таблицы SqlAlchemy, чтобы вычислить среднее значение за неделю для этого столбца?
Я могу получить среднее значение за неделю FileTable.file_size
по методу weekly_average_file_size
(ниже). Но, кажется, лучше добавить атрибут weekly_average в file_size.
class FileTable(Base):
file_name = Column(String(150))
file_size = Column(BigInteger)
file_dt = Column(Date)
@classmethod
def weekly_average_file_size(cls):
qry_object = select(
[func.AVG(cls.file_size
).label('average_file_size')]
).where(
cls.file_dt >=
literal_column(
"NOW() - INTERVAL '1 week'"))
session = get_session()
result = session.execute(
qry_object.compile(
compile_kwargs={'literal_binds': True}
).string
).fetchone()
return int(result.average_file_size)
Идея состоит в том, чтобы заменить FileTable.weekly_average_file_size()
на FileTable.file_size.weekly_average
.
Или это вообще плохая идея?
(И да, выполнение этого запроса затруднено. Все еще чувствую мой путь через SqlAlchemy.)