分组和& sqlalchemy中的count函数

时间:2009-06-27 05:10:43

标签: count group-by sqlalchemy

我想在sqlalchemy中使用“group by and count”命令。我怎么能这样做?

3 个答案:

答案 0 :(得分:128)

documentation on counting表示对于group_by次查询,最好使用func.count()

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

答案 1 :(得分:25)

您还可以指望多个群组及其交叉点:

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

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

答案 2 :(得分:15)

如果您使用的是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()