我正在尝试从表和订单中返回总和行以及总和结果。

我的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()

调试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

但这是行不通的。

最佳答案

从您的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()

关于python - 如何在SQLAlchemy查询中使用求和和排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36050890/

10-11 15:00