Ich möchte den zuletzt geänderten Datensatz für jeden Benutzer in meiner Datenbank speziell mithilfe von sqlalchemy orm erhalten. Hier ist, was ich versuche:Zuletzt geänderten Datensatz für jeden Benutzer
session.query(Object)\
.group_by(Object.user_id)\
.order_by(Object.updated_at.desc())\
.first()
Aber immer folgende Fehlermeldung:
(psycopg2.ProgrammingError) column "object.id" must appear in the GROUP BY clause or be used in an aggregate function
ja das ist eine gute Problemumgehung. aber ich möchte den gesamten letzten Datensatz für jeden Benutzer und nicht nur, wenn dieser Datensatz aufgetreten ist, zurückgeben. müsste ich Abfragen kombinieren? – dataflow
Ich sehe Sie postgresql verwenden. In postgresql sollte die Abfrage 'Select distinct on (user_id) * aus der Tabellenreihenfolge nach user_id, updated_at desc 'funktionieren. In ORM können Sie 'session.query (Object) .distinct (Object.user_id) versuchen. Order_by (Object.user_id, Object.updated_at.desc()). All()' –
@wotalf hilft es? –