Ich möchte einen Befehl "Gruppieren nach und Zählen" in sqlalchemy. Wie kann ich das machen?
Ich möchte einen Befehl "Gruppieren nach und Zählen" in sqlalchemy. Wie kann ich das machen?
Antworten:
Die Dokumentation zum Zählen besagt, dass es für group_byAbfragen besser ist, Folgendes zu verwenden func.count():
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Table.queryEigentum anstelle von session.query():Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
Wenn Sie eine Table.queryEigenschaft verwenden:
from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
Wenn Sie eine session.query()Methode 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()
Sie können auch auf mehrere Gruppen und deren Schnittpunkte 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.