Voglio un comando "raggruppa e conta" in sqlalchemy. Come posso fare questo?
Voglio un comando "raggruppa e conta" in sqlalchemy. Come posso fare questo?
Risposte:
La documentazione sul conteggio dice che per le group_byquery è meglio usare func.count():
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Table.queryproprietà invece di session.query():Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
Se stai usando la Table.queryproprietà:
from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
Se stai usando il session.query()metodo (come indicato nella risposta di miniwark):
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Puoi anche contare su più gruppi e sulla loro intersezione:
self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()
La query precedente restituirà i conteggi per tutte le possibili combinazioni di valori di entrambe le colonne.