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

如何用MySQL的GROUP BY与SUM关联查询展示用户a、b、c的总金额?

解决方案

要计算用户a、b、c各自的总金额,需要先合并两张表的用户金额数据,再分组求和,具体SQL语句如下:

SELECT user, SUM(money) AS total_money
FROM (
    -- 合并两张表的用户与金额记录
    SELECT user, money FROM bills
    UNION ALL
    SELECT user, money FROM enroles
) AS combined_data
GROUP BY user
ORDER BY user;

执行结果说明

执行后会返回所有目标用户的总金额:

  • 用户a:100(仅来自bills表)
  • 用户b:500(bills的200 + enroles的300)
  • 用户c:400(仅来自enroles表)

直接使用GROUP BY失败的原因

如果单独对单表执行GROUP BY,只能得到该表内用户的金额;如果用JOIN关联两张表,会遗漏仅在其中一张表存在的用户(比如a和c)。而UNION ALL会保留所有用户的金额记录,基于合并后的结果分组求和,才能覆盖所有目标用户的金额统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:05:10