Wie filtere ich alle Gruppen mit Gesamtsummen von 0?SQLAlchemy: Wie nach der Aggregation gefiltert wird
q = session.query(Trades.ticker, func.sum(Trades.shares))
g = q.group_by(Trades.ticker)
f = g.filter(func.sum(Trades.shares) != 0)
result = f.all()
Dies führt den Fehler in Zeile 3:
... sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) misuse of aggregate: sum() ...
Eine Abhilfe ist, die Filter zu entfernen und zu tun:
result = [x for x in g.all() if x[1] != 0.0]
Aber das ist sehr langsam im Vergleich zu einer SQL-Abfrage Filterung .
(hrsg. Zu vereinfachen) ist
Etwas verwandten: https://stackoverflow.com/questions/648083/sql-error-misuse-of-aggregate –