SQLAlchemy中的分组和计数函数
我想在sqlalchemy中使用一个“分组并计数”的命令。请问我该怎么做呢?
3 个回答
37
你还可以对多个组以及它们的交集进行计数:
self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()
上面的查询会返回两个列中所有可能值组合的计数。
66
如果你在使用 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()
257
关于计数的文档提到,对于使用 group_by
的查询,最好使用 func.count()
来进行计数:
from sqlalchemy import func
session.query(Table.column,
func.count(Table.column)).group_by(Table.column).all()