Динамически добавлять группы по предложениям в sql alchemy - PullRequest
0 голосов
/ 01 октября 2018

У меня есть базовый запрос (с необходимыми столбцами для запроса), и я пытаюсь динамически добавлять предложения объединения и группировки по базовому запросу, используя SQL Alchemy ORM. Я уже нашел здесь операцию добавления соединений SQLAlchemy- Как добавить динамические левые объединения в запрос?

, из которого я создал функцию -

    add_join_conditions(query,join_conditions):
      for condition in join_conditions:
        query = query.join(*condition)

Может кто-нибудь помочь мне с созданием аналогичной функции - add_group_by_columns (запрос, group_by_columns)

1 Ответ

0 голосов
/ 01 октября 2018

Простое решение будет следующим:

 def add_group_by_columns(query, group_by_columns):
   return query.group_by(*group_by_columns)

Вы можете использовать его следующим образом

q = db.session.query(Order.product_id, Order.seller_id, func.count(Order.id)).filter(Order.user_id==12)

q1 = add_group_by_columns(q, [Order.product_category_id, Order.seller_id])

q1.all()
...