2014-01-22 1 views
1

내 테이블에 4 개의 열이 있습니다.MS Access : SQL 쿼리에서 각 그룹의 최상위 찾기

나는 선수 이름, ID, 나이 및 점수가 있습니다.

ID | Player Name | Age | Score 
------------------------------ 
0 | James  | 24 | 20 
1 | Carly  | 24 | 25 
2 | Matt  | 24 | 19 
3 | Jess  | 26 | 35 
4 | Jimmy  | 26 | 32 
5 | Tom   | 27 | 19 
6 | Brian  | 27 | 25 

각 연령 그룹의 최고 선수를 찾기 위해 검색어를 작성해야하지만, 나는 혼란 스럽습니다. 나는 둘 다 정렬 및 Max() 함수를 사용하여 시도하고 수동으로 값을 통해 위로 가기 찾을 수 있지만 아무 소용이 시도했다.

내가 기대했던 결과의 일종이다 :

ID | Player Name | Age | Score 
------------------------------ 
1 | Carly  | 24 | 25 
3 | Jess  | 26 | 35 
6 | Brian  | 27 | 25 

나는 매우 혼란 스러워요, 나는 이것을 달성하는 간단한 방법이있을거야. 감사. 이 문제를 해결하기 위해

+0

'top n by group'검색 http://support.microsoft.com/kb/153747 – Fionnuala

+1

어떻게 넥타이를 다뤄야합니까? –

답변

3

한 가지 방법은 연령에 따라 최대 점수의 인라인 뷰를 생성 한 다음에 가입하는 것입니다

SELECT p.* 
FROM players p 
     INNER JOIN (SELECT age, 
          Max(score) as mScore 
        FROM players 
        GROUP BY age) AS mp 
       ON p.age = mp.age 
        AND p.score = mp.mscore 

당신은주의해야 그 이상의 기록이별로 나타날 수있는 최대위한 넥타이가있는 경우 나이