MS Access:在SQL查询中查找每个组的顶部

MS Access:在SQL查询中查找每个组的顶部,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,在我的表中,我有四列 我有球员的名字,身份证,年龄和分数 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 |

在我的表中,我有四列

我有球员的名字,身份证,年龄和分数

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

我很困惑,我相信有一个简单的方法可以做到这一点。谢谢。

解决这个问题的一个方法是创建每个年龄段的最大分数的内联视图,然后加入该视图

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 

您应该注意,如果每个年龄段最多出现一条以上的记录,请按组搜索
前n名
例如,您希望如何处理关系?