2014-11-04 88 views
0

競猜總和點的最好成績我有這個樣子選擇每個排行榜

quiz_id | user_id | points 
--------+---------+-------- 
1  | 1  | 2   
1  | 1  | 7   
3  | 1  | 7  
2  | 1  | 5  
1  | 2  | 7  
2  | 2  | 7  
3  | 2  | 2 
3  | 2  | 6 

用戶可以重播遊戲試圖達到的最高得分MySQL表..

我需要查詢採取最好的「MAX 「每個用戶玩測驗得分,並通過所有測驗的總和積分排序它,並看它像這樣:

user_id | SUM(points) 
    --------+-------- 
    2  | 20    
    1  | 19  

我試圖做的是第二部分,與此

SELECT user_id, SUM(points) 
FROM Quiz_list 
GROUP BY user_id 
ORDER BY SUM(points) DESC 

我真的很感激,如果有人能告訴我它應該如何看起來像SQL查詢。

回答

3

我認爲你需要一個子查詢,以獲得max()然後做sum()

select user_id, sum(points) as sumpoints 
from (select user_id, quiz_id, max(points) as points 
     from quiz_list 
     group by user_id, quiz_id 
    ) uq 
group by user_id 
order by sumpoints desc; 

SQL小提琴:我需要http://sqlfiddle.com/#!2/de1136/1/0

+0

那到底是什麼:)感謝名單了很多! – 45RPM 2014-11-04 23:02:03