Frage

Ich möchte eine „Gruppe von und zählen“ Befehl in sqlalchemy. Wie kann ich das tun?

War es hilfreich?

Lösung

Die Dokumentation auf das Zählen sagt, dass für group_by Abfragen es besser ist, verwenden func.count():

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

Andere Tipps

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

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

Die Abfrage oben kehrt Zählungen für alle möglichen Kombinationen von Werten aus den beiden Spalten.

Wenn Sie mit Table.query Eigenschaft:

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

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

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top