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名
例如,您希望如何处理关系?