2014-11-04 89 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