最近修改了每个用户的记录

时间:2017-03-14 20:59:14

标签: python postgresql orm sqlalchemy

我想使用sqlalchemy orm为我的数据库中的每个用户获取最近修改过的记录。这是我正在尝试的:

session.query(Object)\
       .group_by(Object.user_id)\
       .order_by(Object.updated_at.desc())\
       .first()

但是收到以下错误:

(psycopg2.ProgrammingError) column "object.id" must appear in the GROUP BY clause or be used in an aggregate function

1 个答案:

答案 0 :(得分:1)

此错误的原因是您使用了group_by而没有聚合函数。 试试这样的事情

from sqlalchemy import func
session.query(Object.user_id, func.max(Object.updated_at)).group_by(Object.user_id).all()

它将返回每个用户的最后updated_at值。仅当表group_by中有多个记录与Object相同时才使用user_id

相关问题