【发布时间】:2016-08-16 18:15:56
【问题描述】:
我有一个这样定义的表:
Column | Type | Modifiers | Storage | Stats target | Description
-------------+---------+-----------+---------+--------------+-------------
id | uuid | not null | plain | |
user_id | uuid | | plain | |
area_id | integer | | plain | |
vote_amount | integer | | plain | |
我希望在查询此数据库时能够生成排名“列”。此排名列将按vote_amount 列排序。我试图创建一个查询来执行此操作,它看起来像这样:
subq_rank = db.session.query(user_stories).add_columns(db.func.rank.over(partition_by=user_stories.user_id, order_by=user_stories.vote_amount).label('rank')).subquery('slr')
data = db.session.query(user_stories).select_entity_from(subq_rank).filter(user_stories.area_id == id).group_by(-subq_rank.c.rank).limit(50).all()
希望我的尝试能让您了解我想要实现的目标。
谢谢。
【问题讨论】:
标签: python sql postgresql sqlalchemy