2016-03-17 39 views
1

我試圖從我的表中返回一個總和行,並與總和結果進行排序。如何在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() 

調試呼應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

你知道如何編寫你想要的原始SQL嗎? – univerio

回答

0

與您的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() 
+0

這是否適合你? – API

+0

是的,謝謝。我也是這樣做的。 – steve

相關問題