wake-up-neo.com

Gruppieren nach & Zählfunktion in der SQL-Chemie

Ich möchte einen "group by and count" -Befehl in sqlalchemy. Wie kann ich das machen?

82
Nazmul Hasan

Die Dokumentation zum Zählen besagt, dass es für group_by - Abfragen besser ist, func.count() zu verwenden:

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

Sie können auch auf mehrere Gruppen und deren Schnittmenge zählen:

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

Die obige Abfrage gibt die Anzahl aller möglichen Wertekombinationen aus beiden Spalten zurück.

27
fccoelho

Wenn Sie die Eigenschaft Table.query Verwenden:

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

Wenn Sie die Methode session.query() verwenden (wie in der Antwort von miniwark angegeben):

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