SQL中如何用GROUP BY结合MAX函数按年份查询最高速度
实现方案
逻辑说明
- 首先通过两张表共有的
RaceID字段关联赛事表(Race)和成绩表(Results),拿到每场比赛对应的年份和选手速度数据 - 按
Year字段分组,对每组的Speed字段取最大值即可得到每个年份对应的最高速度
参考SQL语句
SELECT r.Year, MAX(res.Speed) AS MaxSpeed FROM Race r INNER JOIN Results res ON r.RaceID = res.RaceID GROUP BY r.Year ORDER BY r.Year;
说明:上述写法适配MySQL、PostgreSQL、SQL Server等绝大多数主流数据库,符合「非聚合字段必须全部出现在GROUP BY中」的SQL规范,不需要排序的话可以删除最后一行ORDER BY语句。
查询返回结果示例
| Year | MaxSpeed |
|---|---|
| 2010 | 180 |
| 2011 | 190.5 |
| 2012 | 200 |
| 2013 | 220 |
内容的提问来源于stack exchange,提问作者Ammaar Bin Liyak
相关产品推荐
相关产品推荐

