0

使用 AsyncSession、Postgres 后端、Python 3.6 的 SQLAlchemy 1.4 ORM

我正在尝试使用SQLAlchemy ORM. SQL 查询类似于:

COUNT({group_by_function}),{group_by_function} AS {aggregated_field_name)}

我一直在寻找这方面的信息。

我知道这可以首先在Postgresdb 内部创建,然后由 使用SA,但这对于我正在使用的代码库的设置方式来说是有问题的。

我知道SQLAlchemy-Utils有这方面的功能,但我不想使用外部库。

我能找到的关于这个主题的最直接的帖子是“新聚合函数的创建依赖于后端,并且必须直接使用下划线连接的 API 完成。” 但这是几年前的事了,我认为从那以后可能会有更新。

我是否在SA ORM讨论此问题的文档中遗漏了某些内容,或者这是否不受SA句号支持?

4

1 回答 1

1

你可以试试这个查询

query = db.session.query(Model)\
    .with_entities(
        Model.id, 
        func.sum(Model.number).label('total_sum')
    ).group_by(Model.id)
于 2021-12-09T15:24:23.697 回答