0

我正在尝试array_agg对子查询进行嵌套操作,我得到了sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'ImmutableColumnCollection'. 我目前有一个工作(更简单)的查询和后续itertools.groupby操作,但我试图将所有内容都作为查询。

这是简化的代码:

sq = db.session.query(Item.sku, Item.price, func.array_agg(Attribute.value))\
        .select_from(Item)\
        #various filters
        .join(Attribute)\
        .group_by(Item.sku, Item.price)\
        .subquery()

q = db.session.query(Item.group, func.array_agg(sq.c))\
        .group_by(Item.group_id)\
        .all()

所以它似乎在抱怨,因为array_agg需要一个明确的type并且它无法处理ImmutableColumnCollection子查询的“返回”。我不完全了解如何c使用,所以我怀疑我sq.c的问题。

4

0 回答 0