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

SQL Server查询主场进球最多球队的英格兰球员数结果错误咨询

问题排查
  • 分组逻辑错误:你的语句按PLAYER_ID分组,每个分组仅对应1名球员,COUNT(PLAYER.PLAYER_ID)返回的结果永远为1,无法统计整队的球员总数。
  • 关联条件错误:NATION表主键字段名为ID,你写的关联条件PLAYER.NATION_ID = NATION.NATION_ID字段名不匹配,会导致关联失败。
  • 核心逻辑缺失:没有先定位「单场主场进球最多的球队」这个前置筛选条件,直接关联球员和比赛表,会拉取该球队所有主场比赛的记录,统计范围不符合需求。
正确查询语句

逻辑为先找到单场比赛中最高的主场进球数,对应到所属主队,再统计该球队下英格兰籍球员的总数,SQL Server适配语句如下:

SELECT 
    COUNT(p.ID) AS england_player_total,
    max_home_score
FROM (
    -- 子查询获取主场进球最高的主队ID和对应的进球数
    SELECT TOP 1 
        HOME_TEAM_ID, 
        HOME_SCORE AS max_home_score
    FROM MATCH
    ORDER BY HOME_SCORE DESC
) top_home_team
INNER JOIN PLAYER p 
    ON top_home_team.HOME_TEAM_ID = p.TEAM_ID
INNER JOIN NATION n 
    ON p.NATION_ID = n.ID
WHERE n.NATION_NAME = 'England'
GROUP BY max_home_score

如果存在多场比赛主队进球同为最高值,需要统计所有这些球队的英格兰籍球员总数,可以调整子查询逻辑:

SELECT 
    COUNT(DISTINCT p.ID) AS england_player_total,
    MAX(HOME_SCORE) AS max_home_score
FROM MATCH m
INNER JOIN PLAYER p 
    ON m.HOME_TEAM_ID = p.TEAM_ID
INNER JOIN NATION n 
    ON p.NATION_ID = n.ID
WHERE 
    n.NATION_NAME = 'England'
    AND m.HOME_SCORE = (SELECT MAX(HOME_SCORE) FROM MATCH)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:45:06