Python 在查询中使用“分组依据”时,从每个组中选择一个元素
我想知道在查询GROUPBY时如何从类中提取任意元素。例如:Python 在查询中使用“分组依据”时,从每个组中选择一个元素,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,我想知道在查询GROUPBY时如何从类中提取任意元素。例如: class Post(Base): id = Column(Integer, primary_key=True) created = Column(DateTime) comments = Column(Integer) creator = Column(Integer, ForeignKey('user.id')) anonymous = Column(Boolean) class User
class Post(Base):
id = Column(Integer, primary_key=True)
created = Column(DateTime)
comments = Column(Integer)
creator = Column(Integer, ForeignKey('user.id'))
anonymous = Column(Boolean)
class User(Base):
id = Column(Integer, primary_key=True)
如何创建输出以下内容的查询:
creator | total number of comments made on the creator's post | the time of the creator's last post
creator | total number of comments made on the creator's post | if any of the posts are anonymous
基本问题是:
session = DBSession()
commsum = session.query(Post.creator, func.sum(Post.comments).label('totalcomments')).\
group_by(Post.creator).subquery()
return session.query(User, commsum.c.totalcomments).\
join(commsum, commsum.c.creator == User.id).all()
如果我想返回1每个组中所有行的最新日期_byPost.creator,或者如果其中任何一行的anonymous==True,该怎么办
SELECT Post.creator,
sum(Post.comments) total_comments
max(Post.Created) latest_post
max(Post.anonymous) any_anonymous
FROM Post
GROUP BY Post.creator
你现在有什么?你试过什么?请使用此信息更新您的问题。尚未尝试任何操作,正在忙于其他任务。我只是在寻找解决方案,但找不到任何解决方案。