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

如何对游戏分数库中UNION查询返回的单列数值求和?

没问题,这个需求其实很容易实现——核心思路就是把你的UNION查询当成一个子查询,在外层用SUM()函数直接对这个子查询返回的单列数值求和就行。

结合你的游戏分数表(我先假设表名叫tournaments,如果实际表名不一样你替换一下),给你举两个实用的例子:

例子1:统计某个玩家的总得分

比如你要算ID为81的玩家,不管他是黑方还是白方的所有得分总和:

SELECT SUM(player_score) AS total_score_for_player_81
FROM (
    -- 取出81作为黑方的得分
    SELECT Black_Score AS player_score FROM tournaments WHERE Black_ID = 81
    UNION ALL
    -- 取出81作为白方的得分
    SELECT White_Score AS player_score FROM tournaments WHERE White_ID = 81
) AS combined_player_scores

例子2:统计所有玩家的总分数总和

如果要把表里所有的Black_Score和White_Score全部加起来:

SELECT SUM(all_scores) AS total_overall_scores
FROM (
    SELECT Black_Score AS all_scores FROM tournaments
    UNION ALL
    SELECT White_Score AS all_scores FROM tournaments
) AS all_combined_scores

关键注意点

  • 一定要用UNION ALL而不是UNION:UNION会自动去重,如果你用它的话,相同分数的记录会被合并,导致求和结果比实际少。只有当你明确需要去掉重复值的时候才用UNION。
  • 子查询必须加别名:几乎所有数据库都要求子查询有一个别名(比如上面的combined_player_scores),否则外层查询无法识别它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:10:18