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

SQL统计重复值:如何统计各球队的进球次数?

统计各球队进球次数的SQL实现方法

嘿,这个需求用SQL的分组聚合就能轻松搞定,思路非常直接:你的数据表中每一行记录就代表一次进球(比如Game_id=47的Team 1出现两次,就是该队在这场比赛进了2球),所以我们只需要按球队分组,统计每组的记录总数就行。

基础统计(结构化输出)

先写最通用的版本,输出球队ID和对应的进球次数,方便后续处理:

SELECT 
    Team,
    COUNT(*) AS 进球次数
FROM 
    你的表名 -- 记得替换成实际的数据表名称
GROUP BY 
    Team
ORDER BY 
    进球次数 DESC; -- 可选,按进球数从多到少排序,更直观

代码解释:

  • GROUP BY Team:把所有相同Team的记录归为一组,确保我们是按球队维度统计
  • COUNT(*):统计每组内的记录条数,也就是该球队的总进球数
  • ORDER BY 进球次数 DESC:可选排序语句,让结果按进球数从高到低排列,方便快速看排名

用你提供的测试数据运行这段SQL,会得到这样的结构化结果:

Team进球次数
13
22
81

生成自然语言格式的结果(和你期望的输出一致)

如果想要直接生成Team 1 进球3次这种自然语言的统计结果,可以用字符串拼接函数,不同数据库的语法略有差异,这里给出几种常见数据库的写法:

MySQL/MariaDB版本:

SELECT 
    CONCAT('Team ', Team, ' 进球', COUNT(*), '次') AS 统计结果
FROM 
    你的表名
GROUP BY 
    Team
ORDER BY 
    COUNT(*) DESC;

PostgreSQL版本:

SELECT 
    'Team ' || Team || ' 进球' || COUNT(*) || '次' AS 统计结果
FROM 
    你的表名
GROUP BY 
    Team
ORDER BY 
    COUNT(*) DESC;

SQL Server版本:

SELECT 
    'Team ' + CAST(Team AS VARCHAR(10)) + ' 进球' + CAST(COUNT(*) AS VARCHAR(10)) + '次' AS 统计结果
FROM 
    你的表名
GROUP BY 
    Team
ORDER BY 
    COUNT(*) DESC;

运行这些语句后,就能直接得到你想要的自然语言输出形式啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:02:15