You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询异常:无法获取水手队各年份平均体重与身高

问题分析与解决

你的SQL逻辑框架没问题,但有两个关键问题会导致结果不符合预期:

  • 原语句没按年份从近到远排序,结果是数据库默认的无序状态,不是你要的倒序
  • 如果PlayersAndTeams表存在同一球员同一年份的重复记录(比如球员多次被关联到同一年的球队),会干扰平均值计算,甚至可能让分组后出现异常(虽然GROUP BY yearID理论上会合并同一年份,但重复行会拉偏聚合结果)

修正后的SQL语句

SELECT yearID, 
       AVG(weight) AS AverageWeight, 
       AVG(height) AS AverageHeight
FROM (
    -- 先去重同一球员同一年份的重复记录
    SELECT DISTINCT yearID, playerID, weight, height
    FROM [TWalls_W23].[dbo].[PlayersAndTeams]
    WHERE teamID = 'SEA'
) AS UniquePlayerYears
GROUP BY yearID
ORDER BY yearID DESC; -- 按年份从近到远排序

简化方案(如果无重复数据)

要是确认表中没有同球员同年份的重复数据,直接在原语句末尾加排序即可:

SELECT yearID, AVG(weight) as AverageWeight, AVG(height) as AverageHeight
FROM [TWalls_W23].[dbo].[PlayersAndTeams]
where teamID = 'SEA' 
group by yearID
ORDER BY yearID DESC;

额外检查点

如果还是出现非唯一年份的结果,要确认yearID的数据类型:如果是字符串类型,得保证格式统一(比如没有带空格、多余字符),否则会被当作不同年份分组。

内容的提问来源于stack exchange,提问作者Tim W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:31:13