Как поместить атрибут weekly_average в столбец SqlAlchemy? - PullRequest
0 голосов
/ 09 марта 2019

Как добавить атрибут в столбец модели таблицы 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.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...