Python 如何在SQLAlchemy查询中使用sum和order by
我试图从我的表中返回一个求和行,并用求和结果进行排序 我的sql是这样的:Python 如何在SQLAlchemy查询中使用sum和order by,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我试图从我的表中返回一个求和行,并用求和结果进行排序 我的sql是这样的: self.db_user_online.query( MeleeGameData, func.sum(MeleeGameData.core_data).label("ct") ).\ group_by(MeleeGameData.ccid).\ filter_by(mid=self.cycle_id).\ order_by("ct desc").\ all() 调试回送s
self.db_user_online.query(
MeleeGameData,
func.sum(MeleeGameData.core_data).label("ct")
).\
group_by(MeleeGameData.ccid).\
filter_by(mid=self.cycle_id).\
order_by("ct desc").\
all()
调试回送sql:
SELECT fiels..., sum(t_act_melee_game_data.core_data) AS ct
FROM t_act_melee_game_data
WHERE t_act_melee_game_data.mid = %s
GROUP BY t_act_melee_game_data.ccid
ORDER BY ct DESC
但是它不能工作。从SQL代码开始;我假设您希望按每个
ccid
进行分组,然后对相应的数据求和(为了简单起见,我取出了过滤器):
炼金术中的建构
self.db_user_online.query(
MeleeGameData.ccid,
func.sum(MeleeGameData.core_data).label("ct")
).\
group_by(MeleeGameData.ccid).\
order_by(func.sum(MeleeGameData.core_data).desc()).\
all()
你可以试试
self.db\u user\u online.query(
MeleeGameData,
函数和(MeleeGameData.core_data).label(“ct”)
) \
.group_by(MeleeGameData.ccid)\
.filter\u by(mid=自循环\u id)\
.订购人(描述(“ct”))\
.all()
您知道如何编写所需的原始SQL吗?
self.db_user_online.query(
MeleeGameData.ccid,
func.sum(MeleeGameData.core_data).label("ct")
).\
group_by(MeleeGameData.ccid).\
order_by(func.sum(MeleeGameData.core_data).desc()).\
all()