0
Мне было интересно, как извлечь произвольный элемент из класса при запросе с помощью «group by». Например:при использовании «group_by» в запросе, выберите элемент из каждой группы
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) новейшую дату все строки в каждой group_by (Post.creator) или 2) если какая-либо из строк имела анонимность == True.
Что вы получили в данный момент? Что вы пробовали? (Пожалуйста, уточните свой вопрос с этой информацией.) –
еще ничего не пробовал, занят работой над другими задачами. Я просто искал решение, но не смог найти. –