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_by
query è meglio usare func.count()
:
from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()
Table.query
proprietà invece di session.query()
:Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
Se stai usando la Table.query
proprietà:
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.