Я использую SqlAlchemy в качестве интерфейса к базе данных Oracle, и мне интересно, возможно ли что-то, и если да, то как.Я пытаюсь создать запрос, который получает агрегаты данных, но затем динамически добавлять столбцы в запрос на основе параметров, переданных с помощью запроса Flask.Вот пример запроса (упрощенный от моего фактического запроса):
db.session.query(
func.count(Batch.batch_id).label('count'),
Category.product_title.label('product_title'),
) \
.join(Category, Category.category_id == Batch.category_id)
.filter(Batch.date <= end_date) \
.filter(Batch.date >= start_date)
.group_by(Category.product_title)
.all()
Это своего рода отправная точка для моего запроса.Но на основе параметров запроса я бы хотел изменить этот базовый запрос, чтобы он выглядел примерно так, как расширенный запрос:
LateB = db.aliased(Batch)
db.session.query(
func.count(Batch.batch_id).label('count'),
func.count(distinct(LateB.batch_id).label('late'),
Category.product_title.label('product_title'),
) \
.join(Category, Category.category_id == Batch.category_id) \
.outerjoin(LateB, (LateB.batch_id == Batch.batch_id) & (LateB.date <= some_date_in_the_past)) \
.filter(Batch.date <= end_date) \
.filter(Batch.date >= start_date)
.group_by(Category.product_title)
.all()
Моя цель - создать базовый запрос, но затем динамически изменить его, чтобы онв конечном итоге выглядит как расширенный запрос.У кого-нибудь есть идеи, если это вообще возможно, и если да, могут ли они указать мне на некоторые идеи или предложения?
Спасибо!Дуг