Здравствуйте, есть три таблицы User, Place, Sales:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
class Place(db.Model):
id = db.Column(db.Integer(), primary_key=True)
sales = db.relationship('Sales', backref='place', lazy='dynamic')
def regular_clients(self, time_start, time_end):
pass
class Sales(db.Model):
id = db.Column(db.Integer(), primary_key=True)
place_id = db.Column(db.Integer, db.ForeignKey('place.id'))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
buyer = db.relationship("User", foreign_keys=[user_id])
timestamp = db.Column(db.DateTime(timezone=False),default=datetime.utcnow)
sum = db.Column(db.Integer, nullable=False)
Необходимо посчитать постоянных клиентов на точке Place за определенный промежуток времени, клиент считается "постоянным", если, например, он сделал 5 покупок за временной промежуток.
В классе Place начал описывать метод:
def regular_clients(self, time_start, time_end):
query = db.session.query(User).join(Sales.user_id).\
filter(Sales.place_id == self.id,
Sales.timestamp >= date_start, Sales.timestamp <= date_end)
Но как добавить фильтр по количеству покупок, помогите плиз, написать запрос.