我试图从我的表中返回一个总和行,并使用总和结果进行排序。
我的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()
Debug echo 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
但它无法正常工作..
答案 0 :(得分:2)
从SQL代码开始;我想你想按每ccid
进行分组,然后对相应的数据求和(为简单起见,我拿出过滤器):
SELECT t_act_melee_game_data.ccid,
sum(t_act_melee_game_data.core_data) AS ct
FROM t_act_melee_game_data
GROUP BY t_act_melee_game_data.ccid
ORDER BY sum(t_act_melee_game_data.core_data) DESC
在SQLAlchemy中构造;
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()
答案 1 :(得分:0)
您可以尝试
from
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()