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

MySQL如何对两个不同数据表执行SUM聚合函数关联统计

合并实现方案

你可以将两个表的聚合逻辑分别封装为独立子查询完成统计后,再按共同分组字段category_id、product_size关联,最后对接品类表取分类名称即可,避免直接关联未聚合的原始表导致指标重复计算。

参考代码

SELECT
    COALESCE(q.category_id, s.category_id) AS category_id,
    COALESCE(q.product_size, s.product_size) AS product_size,
    c.category_name,
    COALESCE(q.total_quantity, 0) AS total_quantity,
    COALESCE(s.total_sell, 0) AS total_sell
FROM (
    -- 统计表1的库存总量
    SELECT
        category_id,
        product_size,
        SUM(product_quantity) AS total_quantity
    FROM tbl_categories_quantity
    GROUP BY category_id,product_size
) q
-- 可根据需求调整关联类型:仅展示两边都存在的组合用INNER JOIN;仅展示表1存在的组合用LEFT JOIN;展示两边所有组合用FULL JOIN
FULL JOIN (
    -- 统计表2的销售总量
    SELECT
        category_id,
        product_size,
        SUM(product_sell) AS total_sell
    FROM tbl_product_sell
    GROUP BY category_id,product_size
) s USING (category_id, product_size)
LEFT JOIN tbl_categories c USING (category_id);

注意说明

  • COALESCE函数用于处理某张表缺失对应分组的场景,缺失的指标默认补0,符合常规统计场景的输出要求
  • 关联类型可根据你需要展示的维度范围灵活调整,已在代码注释中标注不同关联类型的适用场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:18:03