sql - 访问 SQL 查询组前 1
问题描述
我正在尝试编写一个查询来选择每个数据组中的顶部记录。
例如下面
分配 | 团队 | 积分 |
---|---|---|
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
);
推荐阅读
- javascript - 使用 jquery 将所选 li 元素之后的所有元素移动到开头
- angular - 此模块使用“export =”声明,并且只能在使用“allowSyntheticDefaultImports”标志时与默认导入一起使用
- kotlin - 为什么在 kotlin 中将集合设置为 null 是非法的
- groovy - 在常规中从当前日期开始添加 14 天,但当前格式为 [Sat Sep 26 06:02:18 UTC 2020]
- javascript - 如何在 jQuery 中搜索带有 utf-8 字符的 JSON,如 SQL LIKE %value% 语句
- javascript - Canvas toDataURL() 仅在 Firefox 浏览器中返回空白图像
- python - 如何将某些 numpy 数组的目标值更改为另一个值(如果目标值列表可用)?
- python - Python加法指针
- cypress - 是否可以将赛普拉斯配置为以全屏模式启动?
- flutter - 颤振中未定义的名称“导航器”