【发布时间】:2018-08-22 00:10:18
【问题描述】:
我想根据两个不同查询的总和对表现最好的人进行排序。我该怎么做?
假设我正在跟踪锦标赛的玩家统计数据并拥有以下模型:
class Player(db.Model):
id = db.Column(db.String(1024), primary_key=True)
name = db.Column(db.String(80))
dob = db.Column(TIMESTAMP, nullable=True)
start_ts = db.Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=False)
end_ts = db.Column(TIMESTAMP, nullable=True)
school_id = db.Column(db.String(1024), db.ForeignKey('school.id'), nullable=False)
class School(db.Model):
id = db.Column(db.String(1024), primary_key=True)
name = db.Column(db.String(80))
address = db.Column(db.String(80))
state = db.Column(db.String(2))
class GameStats(db.Model):
id = db.Column(db.String(1024), primary_key=True)
date = db.Column(TIMESTAMP, server_default=text('CURRENT_TIMESTAMP'), nullable=False)
player_id = db.Column(db.String(1024), db.ForeignKey('school.id'), nullable=False)
scored = db.Column(Numeric(0, 0), nullable=False)
我想生成一份格式如下的报告:
player.id | player.name | total_score (scored from day 1 + day2) | school.name | school.state
按总分排序的前 10 名球员。最简单的方法是什么?我可以使用 python/sqlalchemy 或 sql。
【问题讨论】:
-
您是否尝试过使用
order_by? -
不,我没有,我会看看。我对子查询不太熟悉,所以我不太确定如何将两个相加,特别是因为这两个查询仅在过滤日期上有所不同。
标签: python sql postgresql sqlalchemy