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

SQL中max函数搭配group by统计最高进球球员结果错误如何解决?

问题原因

你当前的SQL用了max(goals)聚合函数,逻辑是统计每个球员的单场最高进球数,和你需要的「统计每个球员累计总进球、再取总进球最高的记录」需求完全不符。

解决方案

步骤1:先统计每个球员的总进球数

将max(goals)替换为sum(goals),即可得到每个球员的累计总进球:

select player_id, sum(goals) as total_goals
from soccer.player_match_stat
group by player_id

运行该语句你会得到以下中间结果:

player_idtotal_goals
16
25

步骤2:筛选出总进球最高的记录

如果只需要取最高的1条(不处理并列最高的情况),直接排序后取第一条即可,通用适配所有SQL数据库的写法如下:

select player_id, total_goals
from (
    select player_id, sum(goals) as total_goals
    from soccer.player_match_stat
    group by player_id
) as player_total
order by total_goals desc
limit 1

如果需要处理多人总进球并列第一的场景,用以下写法:

select player_id, sum(goals) as total_goals
from soccer.player_match_stat
group by player_id
having sum(goals) = (
    select max(total_goals)
    from (
        select sum(goals) as total_goals
        from soccer.player_match_stat
        group by player_id
    ) as t
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:07