2013-07-30 129 views
-2

我試圖首先獲得用戶各個級別的最高分,然後將這些分數加起來找到用戶的總體高分。MySQL GROUP BY兩列

+-----------+----------+----------+--------------------+ 
| id  | name  | score | level_id   | 
+-----------+----------+----------+--------------------+ 
|   1 | Jane Doe | 100  |     1 | 
|   2 | Jane Doe | 50  |     2 | 
|   1 | John Doe | 100  |     1 | 
|   2 | John Doe | 50  |     2 | 
+-----------+----------+----------+--------------------+ 

我設法找到了該用戶的所有水平上得分最高,但我怎麼能做到這一點每個級別

select user_id, id, max(correct_answers) 
from score 
group by user_id 
+1

這是一個常見問題的東西,但如果你打算用它堅持(得分) ,至少提供一個sqlfiddle(和/或DDL等價物)以及所需的結果。 – Strawberry

+0

是否有user_id的不重複?如果它沒有重複,那麼爲什麼你在GROUP BY上做user_id –

+0

你可以發佈結果究竟是你想要從示例表。它的一點點難以理解的要求。 –

回答

1

在組中添加level_id試試這個

select user_id, max(correct_answers) maxs ,level_id 
    from score 
    group by level_id,user_id 

DEMO

0

被太多

select user_id, id, max(correct_answers) 
from score group by user_id,level_id 
0

試試這個:

選擇姓名,ID,最多由level_id得分 組ID