У меня есть таблица для регистрации действий пользователя. У меня пока нет разных столбцов для разных типов действий для моей новой задачи, я должен найти среднюю разницу во времени между некоторыми действиями.
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()
Я могу создать новую таблицу для регистрации действий каждого дела 'в разных столбцах, чтобы сделать это, как в первом случае, но это не будет эффективным. Но если я сделаю это как второй способ, вывод не будет правильным, потому что не все действия выполняются во всех случаях. Так что я немного застрял. Как мне этого добиться?
Спасибо