动态将group by子句添加到sql alchemy

时间:2018-10-01 05:58:16

标签: python postgresql orm sqlalchemy flask-sqlalchemy

我有一个基本查询(具有要查询的必要列),我试图使用SQL Alchemy ORM向基本查询中动态添加join和group by子句 我已经在这里找到了添加联接的操作 SQLAlchemy - How to add dynamic left joins to a query?

我从中创建了一个功能-

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

有人可以帮助我创建类似的功能-add_group_by_columns(query,group_by_columns)

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案就是这个

 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()