web-dev-qa-db-ja.com

sqlalchemyのグループ化およびカウント機能

Sqlalchemyで「group by and count」コマンドが必要です。これどうやってするの?

82
Nazmul Hasan

カウントに関するドキュメント は、_group_by_クエリにはfunc.count()を使用することをお勧めします:

_from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
_
135
miniwark

また、複数のグループとその交差点を当てにすることもできます。

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

上記のクエリは、両方の列の値のすべての可能な組み合わせのカウントを返します。

27
fccoelho

_Table.query_プロパティを使用している場合:

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

session.query()メソッドを使用している場合(ミニワークの答えに記載されているとおり):

_from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
_
18
Jakub Kukul