2013-07-18 2 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 

그러나 결과는 틀리다. 내가 실수 한 곳? 진심으로 감사드립니다.

+0

최대 개수는 하나입니까? – davek

+0

문제는 외부 쿼리에서'id_player'를 선택한다는 것입니다 : "[* 서버는 각 그룹에서 임의의 값을 자유롭게 선택할 수 있기 때문에 동일하지 않으면 선택된 값은 불확정합니다. *] (http :// /dev.mysql.com/doc/ko/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

빠른 답장을 보내 주셔서 감사합니다. –

관련 문제