【发布时间】:2010-11-06 07:59:23
【问题描述】:
我想要 sqlalchemy 中的“分组和计数”命令。我该怎么做?
【问题讨论】:
标签: python group-by count sqlalchemy
我想要 sqlalchemy 中的“分组和计数”命令。我该怎么做?
【问题讨论】:
标签: python group-by count sqlalchemy
如果您使用的是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()
【讨论】:
count(column_name) as total_count
documentation on counting 表示对于group_by 查询,最好使用func.count():
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
【讨论】:
Table.query属性而不是session.query()的人的完整声明:Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
您还可以指望多个组及其交集:
self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()
上面的查询将返回两列中所有可能的值组合的计数。
【讨论】: