问题描述
例如下面
部门 | 团队 | 积分 |
---|---|---|
1 | 利物浦 | 90 |
1 | 曼彻斯特 | 88 |
2 | 利兹 | 94 |
2 | 阿森纳 | 77 |
3 | 博尔顿 | 66 |
3 | 马刺队 | 72 |
3 | 德比 | 33 |
我希望我的查询返回每个部门得分最高的球队:
部门 | 团队 | 积分 |
---|---|---|
1 | 利物浦 | 90 |
2 | 利兹 | 94 |
3 | 马刺队 | 72 |
我认为这应该很容易。
有什么想法吗?
谢谢
解决方法
在 MS Access 中,您可以使用:
select t.*
from t
where t.points = (select max(t2.points)
from t t2
where t2.division = t.division
);
如果有平局,则返回所有匹配的球队。如果即使有平局,您也只想要一支球队:
select t.*
from t
where t.team = (select t2.team
from t t2
where t2.division = t.division
order by t2.points desc,t2.team
);