152

我想要 sqlalchemy 中的“分组和计数”命令。我怎样才能做到这一点?

4

3 回答 3

216

关于计数的文档说,对于group_by查询,最好使用func.count()

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
于 2010-11-03T10:44:33.580 回答
54

如果您使用的是Table.query财产:

from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()

如果您使用的是session.query()方法(如 miniwark 的回答中所述):

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
于 2018-07-05T13:58:21.860 回答
33

您还可以依靠多个组及其交集:

self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()

上面的查询将返回两列中所有可能的值组合的计数。

于 2011-03-11T17:10:24.653 回答