SQL多查询嵌套:获取总进球最多年份的指定球队进球数据
解决方案
需求梳理
从包含year、team1、team2、score_team1、score_team2字段的data表中,针对总进球最多的年份(已确定为2),统计team1为a或b的球队的总进球(score_team1之和)与总失球(score_team2之和)。
方式一:基于已知年份直接查询
如果已明确目标年份是2,直接过滤年份即可得到结果:
SELECT team1 AS 球队, SUM(score_team1) AS 总进球, SUM(score_team2) AS 总失球 FROM data WHERE year = 2 AND team1 IN ('a', 'b') GROUP BY team1;
方式二:动态嵌套查询(自动匹配总进球最多的年份)
若需要自动计算并匹配总进球最多的年份(无需硬编码年份值),可以通过子查询嵌套实现:
SELECT team1 AS 球队, SUM(score_team1) AS 总进球, SUM(score_team2) AS 总失球 FROM data WHERE year = ( -- 子查询:找出总进球数最高的年份 SELECT year FROM ( SELECT year, SUM(score_team1 + score_team2) AS 年度总进球 FROM data GROUP BY year ORDER BY 年度总进球 DESC LIMIT 1 ) AS max_year_query ) AND team1 IN ('a', 'b') GROUP BY team1;
结果示例
执行查询后会生成如下格式的结果表:
| 球队 | 总进球 | 总失球 |
|---|---|---|
| a | 18 | 7 |
| b | 13 | 9 |
内容的提问来源于stack exchange,提问作者mhs
相关产品推荐
相关产品推荐

