SqlAlchemy разница временных меток - PullRequest
1 голос
/ 30 апреля 2020

У меня есть таблица для регистрации действий пользователя. У меня пока нет разных столбцов для разных типов действий для моей новой задачи, я должен найти среднюю разницу во времени между некоторыми действиями.

class UserAction(db.Model):
    __tablename__ = "user_action"
    id = Column(Integer, nullable=False, primary_key=True)
    user_id = Column(Integer, ForeignKey('user.id))
    case_id = Column(Integer, ForeignKey('case.id'))
    category_id = Column(Integer)
    action_time = Column(DateTime(), server_default=func.now())

Итак, я хочу сделать что-то вроде,

x = session.query(func.avg(UserAction.action_time)).filter(UserAction.category_id == 1).all()

y = session.query(func.avg(UserAction.action_time)).filter(UserAction.category_id == 2).all()
dif = x - y

или

session.query(func.avg(func.justify_hours(timestamp_column1) - func.justify_hours(timestamp_column1))).all()

Я могу создать новую таблицу для регистрации действий каждого дела 'в разных столбцах, чтобы сделать это, как в первом случае, но это не будет эффективным. Но если я сделаю это как второй способ, вывод не будет правильным, потому что не все действия выполняются во всех случаях. Так что я немного застрял. Как мне этого добиться?

Спасибо

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