2013-07-18 46 views
1

我有一個簡單的問題。我有這個表結構http://sqlfiddle.com/#!2/61cee/3/0,我只想計算每個玩家的攻擊者得分,然後從所有玩家和他的ID中挑選最高分。我試過這個:mySQL計數並從表中獲得最大值

SELECT MAX(counts), id_player FROM 
    (SELECT COUNT(score) AS counts, id_player 
    FROM fl_poll 
    WHERE position = 'attacker' 
    GROUP BY id_player) as maxi 

但是結果是錯誤的id。我犯了什麼錯誤?感謝您的提前。

+0

你是否在max(計數)上打結? – davek

+0

問題是,你在外部查詢中選擇了'id_player':「[*服務器可以自由選擇每個組中的任何值,所以除非它們相同,否則選擇的值是不確定的。*](http:/ /dev.mysql.com/doc/en/group-by-extensions.html)」。 @ davek的答案在這種情況下是最好的解決方案,儘管對這個「[groupwise maximum]」(http://dev.mysql.com/doc/en/example-maximum-column-group-row.html) 「問題是將子查詢加入到它的基礎數據中。 – eggyal

回答

2
SELECT COUNT(score) AS counts, id_player 
    FROM fl_poll 
    WHERE position = 'attacker' 
    GROUP BY id_player 
    ORDER BY COUNT(score) desc 
    LIMIT 1 
+0

我明白了,感謝您的快速回復。 –